PDA

View Full Version : انطلق عن طريق التجارة عبر دفعةVBScript



سيف رجب
02-25-2009 05:50, 05:50 AM
هل من الممكن بدء عملية تداول عبر برنامج vbs أو برنامج نصي؟ لقد حصلت على تطبيق لا يحتوي على منصة MetaTrader ولكنني أرغب في أتمتة نظام تداول يستند إلى علاماته.

لمعلوماتك: هذا ليس نظامًا قائمًا على الويب يمكنني الوصول إليه في أي حال (بمعنى أنه لا يمكن إنشاء تطبيق dll أو مكون للتواصل معه).

ريّان زمان
12-07-2021 04:13, 04:13 AM
يجب أن يكون ممكنًا ، إذا كان البرنامجان (MT4 sys الخارجي) موجودان على نفس جهاز الكمبيوتر بالضبط. يجب أن تقوم نظامك الخارجي بوضع مستند من مجلد MT4expertfiles. يمكنك إنشاء EA في MT4 الذي يقوم بالمسح الضوئي لهذا المستند. اقرأ المستند ، إذا وجده وعالج الطلبات. تفحص EA كل لحظة أو نحو ذلك لملف آخر وتحذف المستند بمجرد الانتهاء من ذلك. GL،

سيف رجب
12-07-2021 05:33, 05:33 AM
هذا يبدو وكأنه خطة. أعتقد أنه سيكون من الأسهل الحصول على منصة خارجية تنتج ملف تقييم 0 بايت يسمى trade.txt وعندما ترى EA تلك الوثيقة فإنها ستبدأ التداول. هل هناك أي مقالات أو وثائق توضح كيفية تعيين متغير في ملف خارجي مثل ذلك؟

سيف رجب
12-07-2021 06:54, 06:54 AM
أقوم بإلقاء نظرة على أعمال المستند التي هي kernel32. هذا عبارة صالح: string ReadFile (مسار السلسلة) {int handle = _lopen (المسار ، OF_READ)؛ إذا (handlelt؛ 0) factor = 0/0 to do trade else factor = 1/1 for commerce

سيف رجب
12-07-2021 08:15, 08:15 AM
لذلك ، أكملت نصًا سينفذ ما أقوم به لإجراء التغييرات. حتى يعمل هذا البرنامج النصي ، كيف يمكنني إضافة عنصر الوقت؟ أيضا ، أنا لا أريد أن تتداول عندما يكون هناك حاليا التجارة في التقدم. تم إدراج الرمز #include lt؛ stdlib.mqhgt؛ #include lt؛ WinUser32.mqhgt؛ int filetrade/lopen #define OF_READ 0 # تعريف OF_WRITE 1 # تعريف OF_READWRITE 2 # تعريف OF_SHARE_COMPAT 3 # تعريف OF_SHARE_DENY_NONE 4 # تعريف OF_SHARE_DENY_READ 5 # تعريف OF_SHARE_DENY_WRITE 6 # تعريف OF_SHARE_EXCLUSIVE 7 #import kernel32.dll int _lopen (مسار السلسلة ، int من)؛ int _lcreat (مسار السلسلة ، int attrib) ؛ int _llseek (int int، int offset، int المصدر)؛ int _lread (int int، string buffer، int bytes)؛ int _lwrite (int int، string buffer، int bytes)؛ int _lclose (int handle)؛ #import/ --------------------------------------------- --------------------- /| البرنامج النصي لبدء العمل |/ ----------------------------------------------- ------------------- سلسلة بداية (مسار السلسلة)/- int handle = _lopen (C: trade.txt، OF_READ)؛ if (handlegt؛ 0) if (MessageBox (هل تريد بالفعل شراء 1.00 Symbol () بسعر ASK؟ ، Script ، MB_YESNO آخر طباعة (خطأ في فتح الملف ، المسار) ؛ return ()؛ int effect = _llseek (مقبض ، 0،0)؛ result = _lclose (handle)؛ return (0)؛

سيف رجب
12-07-2021 09:36, 09:36 AM
أنا أحسب كيفية إصلاح البرنامج النصي لا إغلاق الملف ، على الرغم من أنني أفهم المنطق. في الإدراك المتأخر ، أعتقد أن هذا منطقي طالما أن الملف يمكن فتحه ، فإن قيمة المقبض لن تكون 0. كنت بحاجة لوضع العبارة الختامية مباشرة بعد العبارة المفتوحة: Inserted Code int complete = OrdersTotal ()؛ int handle = _lopen (filetrade، OF_READ)؛ int fclose = _lclose (manage)؛ عندما (handlegt ؛ 0) ...

سيف رجب
12-07-2021 10:57, 10:57 AM
أظن أنه إذا قمت بتشغيل هذا باعتباره EA أنه سيفحص باستمرار للمستند (طالما لا توجد صفقات مفتوحة). هل هذا الافتراض صحيحا؟ أيضاً ، لسبب ما ، لا يقوم البرنامج النصي بإغلاق المستند. هذا هو برنامجي المحدث: Inserted Code #include lt؛ stdlib.mqhgt؛ #include lt؛ WinUser32.mqhgt؛ filetrade string = C: \ trade.txt؛/lopen #define OF_READ 0 #import kernel32.dll int _lopen (مسار السلسلة ، int من)؛ int _llseek (int int، int offset، int المصدر)؛ int _lclose (int handle)؛ #import/ --------------------------------------------- --------------------- /| البرنامج النصي تبدأ العمل |/ ----------------------------------------------- ------------------- سلسلة بداية (مسار السلسلة)/- int handle = _lopen (filetrade، OF_READ)؛ int result = _llseek (manage، 0،0)؛ مجموع الباحثين = OrdersTotal () ؛ يجب (handlegt؛ 0) إذا (totalt؛ 1) MB_ICONQUESTION)! = IDYES) return (1)؛ int ticket = OrderSend (Symbol ()، OP_BUY، 1.0، Ask، 3،0،0، comment specialist، 255،0، CLR_NONE)؛ should (ticketlt؛ 1) int error = GetLastError ()؛ طباعة (خطأ = ، ErrorDescription (خطأ)) ؛ إرجاع؛ OrderPrint ()؛ result = _lclose (handle)؛ آخر طباعة (خطأ في فتح الملف ، المسار) ؛ result = _lclose (manage)؛ إرجاع ()؛ result = _lclose (manage)؛ عودة (0)؛