Truyền dữ liệu từ máy khách MT4 này sang máy khách khác - Page 2
Trang 2 trên 625 FirstFirst 1234 ... CuốiCuối
Results 11 to 20 of 41

Thread: Truyền dữ liệu từ máy khách MT4 này sang máy khách khác

  1. #11
    Cảm ơn vì bài đăng Royce .. Tôi đã nghĩ rằng we rằng bạn có thể giữ vòng lặp mãi mãi và ngủ nó, theo bất kỳ cách nào. Kenz Chắc chắn bạn có thể làm điều đó trong C #, tuy nhiên tôi không chắc tại sao bạn muốn, trừ khi bạn muốn sửa đổităng cường nó, và nếu bạn muốn làm điều đó thì rõ ràng với bạn những gì cần thiết. Tôi chưa được mã hóa trong C trong một số năm và vì nhiều lý do chủ yếu là vì bạn có thể làm bất cứ điều gì trong delphi có thể được thực hiện trong C (tất cả các trình điều khiển thiết bị ảo) Delphi cung cấp một bộ thành phầnđối tượng phong phú hơn nhiều. Ít bị lỗi hơn vì nó dễ đọc hơn rất nhiều và trình biên dịch cho phép bạn viết mã lắp ráp nội tuyến nếu bạn cần đạt được tốc độ nhanh nhất từ ​​một thói quen. Nếu địa ngục của bạn tiếp tục chuyển đổi nó sau đó: Tất cả các chức năng của windows là từ user32.dll Bạn sẽ phải xây dựng lớp TStringList của riêng bạn, đây chỉ là một đối tượng danh sách được liên kết lưu trữ các chuỗi (theo như tôi biết C vẫn không cung cấp cơ bản như vậy nhưng các lớp rất hữu ích theo tiêu chuẩn) hoặc bạn chỉ có thể thực hiện xử lý chuỗi của riêng mình với một mảng động.

  2. #12

    Quote Originally Posted by ;
    Bạn sẽ không thể tạo một không gian bộ nhớ dùng chung trực tiếp trong DLL. Có một số cách để nhận DLL để nói chuyện với nhau. Nó phụ thuộc thực sự nếu bạn muốn coms hai chiều hay không, và tần suất chúng cần trò chuyện. Các phương pháp đơn giản nhất bao gồm: 1) Mở các socket trong DLL để nói chuyện qua TCP hoặc giao thức khác. (có thể dễ dàng nhất và hoạt động nếu các ứng dụng MT4 trên các máy khác nhau trên mạng LAN hoặc inet) 2) Có một MT4 sử dụng DLL tạo cửa sổ 'người trợ giúp' (hiển thị hoặc ẩn) từ một DLL khác. Nếu điều này vượt quá bạn thì bạn có thể sử dụng các tệp đĩa để truyền dữ liệu nếu bạn không chuyển quá thường xuyên, bạn sẽ chỉ phải sử dụng các tệp phụ trợ làm cơ chế semaphore. Một lần nữa, nó thực sự phụ thuộc vào cách bạn đang cố gắng giao tiếp nhưng điều này sẽ hoạt động bên trong một EA (không phải là một kẻ xấu). (Tuy nhiên, bạn sẽ phải sử dụng các chức năng tệp API của windows vì theo như tôi biết thì MT4 sẽ không viết hoặc đọc bên ngoài cấu trúc thư mục của chính nó) 'Datafile.txt' chứa dữ liệu của bạn 'app1lock.txt' ... tệp khóa giả ' app2lock.txt '... tệp khóa giả trước khi khởi động ứng dụng MT4 đảm bảo không có tệp nào tồn tại App1 ... nếu app2lock.txt không tồn tại {tạo tệp app1lock.txt//có thể tại thời điểm này cả hai ứng dụng đều bị khóa đồng thời chờ và kiểm tra lại giấc ngủ (1000);/đợi một giây nếu app2lock.txt không tồn tại {tạosửa đổiđọc 'datafile.txt'} cờ khác mà chúng ta cần làm lại lần sau thông qua xóa tệp 'app1lock.txt'} App2 ... nếu app1lock.txt không không tồn tại {tạo tệp app2lock.txt Ngủ (1500) nếu app1lock.txt không tồn tại {tạosửa đổiđọc 'datafile.txt'} cờ khác cho lần chạy tiếp theo thông qua xóa tệp 'app2lock.txt'}
    Bạn có biết nếu với các phiên bản mới hơn của MT4, giờ đây họ có thể đọcghi các tệp TXT bên ngoài thư mục riêng của họ không? Tôi muốn làm một cái gì đó giống như những gì bạn nói về. Cảm ơn bạn EDIT: Tôi đã tạo một tệp bó lặp DOS nhỏ sẽ sao chép một tệp từ thư mục này sang thư mục khác nhưng mã mq4 chính xác tôi cần để tạo tệp và đọc tệp khi đáp ứng một số điều kiện nhất định là gì? Cảm ơn Đây là tập tin bó nếu quan tâm; : loop xcopy c: \ temp \ test.csv c: \ temp2 del c: \ temp \ test.csv goto: loop

  3. #13
    Tôi biết tôi đã nói rằng tôi sẽ không đăng nữa, nhưng tôi đang ở trong một ràng buộc tuyệt đối. Tôi đã lãng phí gần 20 giờ vào cuối tuần này để nghiên cứu vấn đề này và bắt đầu cảm thấy bất lực. Vấn đề của tôi là Tôi không có visual c hoặc VB Tôi có Dev C , nhưng không biết cách sử dụng MingW để tạo DLL Tôi đang đính kèm nỗ lực của mình tại DLL để giao tiếp giữa các thiết bị đầu cuối MT4 . Ý tưởng là sử dụng các biến môi trường Win32 một semaphore và các đối số truyền. Biến HOL_SENT là một semaphore và OPERATION được sử dụng để trao đổi thông tin. Xin vui lòng .... Tôi không thể lãng phí tất cả những giờ này với DLL ..../copy.cpp #include lt; windows.hgt; #include lt; stringgt; #incolee lt; cstdlibgt; extern C {////////////////////////////////////////////////////////////broker A gọi điều này để báo hiệu một tác vụ mới (sau khi tìm thấy nó sai wcheckCommand () .... do đó, semaphore.) void WINAPI CommandSent (void) {int thành công = 0 ; while (! thành công) thành công = putenv (HOL_SENT = 1); }///////////////////////////////////////////////////////////người môi giới B gọi điều này sau khi nó hoàn thành hoạt động của nó (đặt thành sai, cho người môi giới A biết rằng hoạt động trước đó đã được thực hiện) void WINAPI CommandExecuted (void) {int thành công = 0; while (! thành công) thành công = putenv (HOL_SENT = 0); }///////////////////////////////////////////////////////////broker A gọi lệnh này để kiểm tra các tác vụ mới/broker B gọi lệnh này để kiểm tra hoàn thành chuỗi hoạt động trước đó WINAPI CheckCommand (void) {return getenv (INTERN_SENT); }///////////////////////////////////////////////////////////định dạng thứ tự mở: B_001_45_115/định dạng thứ tự đóng: C_001_____ void WINAPI SetOperation (chuỗi op, vé chuỗi, dừng chuỗi, chuỗi tp) {int thành công = 0; chuỗi s = HOẠT ĐỘNG = op _ vé _ dừng _ tp; char * x = new char [21]; strcpy (x, s.c_str ()); while (! thành công) putenv (x); xóa [] x; }/////////////////////////////////////////////////////////chuỗi WINAPI CheckOperation (void) {return getenv (HOẠT ĐỘNG); }/////////////////////////////////////////////////////////} Xin vui lòng gửi đề xuất hoặc PM cho tôi nếu bạn có thể giúp đỡ! Cảm ơn!

  4. #14
    Tối nay tôi phát hiện ra rằng kernal32.dll có một số getter biến môi trường và setters được tích hợp trong nó. Vì vậy (về lý thuyết) tôi có thể nhập kernal32.dll vào mã MQ4 của mình và sau đó gọi các hàm đó. Tôi lo lắng về việc nó trả về một con trỏ tới một mảng các ký tự thay vì kiểu dữ liệu chuỗi tiêu chuẩn của MQ4. Đây là một liên kết tôi đã đọc:
    http://babek.info/libertybasicfiles/.../nl126/api.htmcác bạn nghĩ sao? Có ai có kinh nghiệm với điều này?

  5. #15
    T. Cảm ơn, Ken (ps: RB: Tôi muốn điều này trong C # vì tôi đang làm việc trong NinjaTrader).

  6. #16
    Tdion: Như Kenz gợi ý tại sao không sử dụng DLL được cung cấp? Tôi đã cung cấp nguồn và biên dịch DLL dưới dạng phần mềm miễn phí .... bạn có thể sử dụng nó cho bất kỳ mục đích nào ngay cả khi nó kết thúc trong một hệ thống có thể bán được ... Tôi sẽ không kiện mông của bạn! hoặc yêu cầu quyền sở hữu. Đối với mã DLL của bạn Tôi không chắc vấn đề chính xác của bạn là gì? Bạn có thể biên dịch thành một DLL có thể gọi được không? Là mãlogic không thực hiện như mong muốn? Thoạt nhìn tôi có thể thấy một lỗ hổng trong egy của bạn. Tôi nghi ngờ các chức năng của windows để lấy và thiết lập các vars môi trường được phát lại (rất ít chức năng Winapi), điều này đặt ra vấn đề tương tự như trong ví dụ về tệp văn bản - cụ thể là - vì bạn có hai quy trình độc lập kiểm tra và sửa đổi cùng một loion có thể một quá trình có thể là một phần trong quá trình kiểm tracài đặt var khi ứng dụng kia kiểm trathiết lập nó. Nếu không sử dụng các cơ chế semaphore hệ điều hành đa nhiệm được thiết lập, điều này có khả năng xảy ra. Ken: OK. Tôi đã không sử dụng giao dịch viên Ninja mặc dù nó đã nằm trong danh sách việc cần làm của tôi. (Đó là một cú hích đối với cá cược Tương lai, người tôi đang tìm cách mở một tài khoản với) Thông tin duy nhất tôi biết về NT là nó sử dụng cú pháp C trong ngôn ngữ của nó. Tôi đoán rằng sẽ có một số khác biệt cú pháp với bonafide C ở đâu đó dọc theo dòng. Bạn sẽ có thể chuyển mã delphi, nếu việc gọi DLL không phải là vấn đề. Bạn nên tham gia với một trong những điều sau đây bao gồm: (mặc dù bạn có thể cần sử dụng sendmessageA thay vì gửi thư, v.v.) winuser.h windows.h bạn vẫn sẽ phải 'phát minh lại' lớp Topeslist nhưng có thể đạt được điều tương tự bằng cách sử dụng một mảng có kích thước tĩnh (đủ lớn) của các chuỗi và sau đó chỉ xáo trộn các chuỗi lên trong mảng getmsg. Miễn là nhậpcuộc gọi DLL có sẵn trong NT, bạn vẫn có thể sử dụng Delphi DLL được cung cấp. Tôi đoán vấn đề lớn nhất (có thể) của bạn là xử lý một cửa sổ trong NinjaT? Nếu đây là vấn đề duy nhất của bạn thì bạn có thể kiểm tradùng thử Delphi DLL nếu bạn có C # hoặc studio trực quan thì bạn có thể xử lý bất kỳ cửa sổ nào trong NinjaT bằng cách sử dụng Spy hoặc 'studio .net' của nó. Khi bạn đã xử lý, bạn có thể mã hóa cuộc gọi để khởi tạo tin nhắn dll chỉ để xem liệu nó có hoạt động theo yêu cầu hay không. Nếu nó hoạt động tốt thì bạn có thể sử dụng một vài cuộc gọi Winapi để tự động hóa việc xử lý cửa sổ Ninja. Bạn có thể đăng một số đoạn mã Ninja, tốt nhất là một số bao gồm các lệnh nhập DLL

  7. #17
    1 Tệp đính kèm RB: mẫu mã C # sắc nét cho NT hầu hết mã trông khó chịu ở phía dưới được tạo bởi NT, nhưng bạn có thể thấy nó khá khác so với C . nhưng tôi nghĩ một cái gì đó như thế này là cần thiết: [DLLImport (user32.dll, EntryPoint = GetDesktopWindow)] extern extern IntPtr GetDesktopWindow (); Tôi chưa có thời gian để kiểm tra điều này - tôi muốn một cuộc gọi đến một dll sẽ thực hiện SendKeys. Cũng có thể sau này có một cái sẽ làm DDE cả hai cách. Chỉ cần thời gian để kiểm tra. Nếu bạn có kế hoạch học điều này, có nhiều thông tin trên trang web microsoft msDN. Ken.
    https://www.forexibroker.com/attachm...1882749462.txt

  8. #18
    ĐƯỢC. Có một cái nhìn nhanh về một số diễn đàn Ninja, v.v ... Có vẻ như họ đã triển khai .NET framework trong phiên bản latet, vì vậy bạn sẽ ổn với DLL, tuy nhiên nhóm hỗ trợ của họ sẽ không đưa ra ví dụ về các cuộc gọi DLL (Odd!). Bạn có thể làm rõ những gì bạn muốn làm chính xác 1) Gọi DLL 'Sendkeys' từ ứng dụng nào không? - để bấm phím trong Ứng dụng nào? 2) bạn muốn DDE giữa hai ứng dụng nào?

  9. #19
    RB: Cảm ơn vì đã nhìn vào đó. NT là trên .NET ver 2. Tôi có mã trong VB để làm những việc khác nhau mà tôi muốn, nhưng C # là một con thú mới đối với tôi - Tôi không thể nhận được cú pháp đúng cho cuộc gọi dll - tại thời điểm biên dịch, nó cho tôi định dạng không hợp lệ trong cuộc gọi user32. Điều này có phần ưu tiên thấp vì tôi có các dự án khác đang diễn ra. Hỗ trợ NT không tuyệt vời lắm với những thứ như thế này - câu trả lời tiêu chuẩn của họ không được hỗ trợ. Điều đầu tiên tôi muốn làm chỉ là nhận một cuộc gọi đơn giản để thực hiện PlaySound. Điều đó sẽ cho tôi cú pháp và một nơi để bắt đầu. Sau đó tôi có thể làm mã. Ken.

  10. #20
    Tôi nhận được một MsgBox đơn giản để hiển thị thông báo bật lên. Bất cứ điều gì tuân thủ nhiều hơn đều cho tôi một lỗi Cố gắng đọccập nhật bộ nhớ được bảo vệ. Đủ bây giờ, điều này mất quá nhiều thời gian.

Quyền đăng bài

  • Bạn không thể đăng bài viết mới
  • Bạn không thể đăng trả lời
  • Bạn không thể đăng tệp đính kèm
  • Bạn không thể chỉnh sửa bài đăng của bạn
  •