في انتظار أمر فوريكس النصي


سلخ فروة الرأس في انتظار الأمر تحميل البرنامج النصي.
سلخ فروة الرأس في انتظار البرنامج النصي سوف إدارة تداول فروة الرأس. ستوبلوس، جني الربح، عدد الصفقات، نقاط الانزلاق، الصفقات على نطاق واسع، الكثير، نسبة المخاطر الخ.
تحميل السكالبينج في انتظار البرنامج النصي:
ذات صلة: في انتظار بيع أوامر مقياس سكريبت دونلواد سيل سكيل أوردرز يمكن للبرنامج النصي فتح أي عدد من أوامر البيع المعلقة بسرعة. بندينغوردرنتريبريس: أدخل سعر أوامر إيقاف / حد. ستوبلوس / تاكيبروفيت: يضيف سي / تب إلى طلبك (ق). إينلودسبرياد: لإضافة مبلغ الانتشار إلى الخاص بك. في انتظار بيع أوامر مقياس السحب إسقاط سكريبت دونلواد بيع أوامر مقياس سحب السحب النصي يمكن فتح بسرعة أي عدد من الانتظار بيع النظام (ق) ببساطة عن طريق سحب البرنامج النصي على مخطط MT4 في أي منطقة المطلوب أعلاه / أقل من السعر الحالي عرض / الطلب. تحميل. إغلاق الكل أوبين بندينغ أوردرز سكريبت دونلواد كلوز إغلاق كافة الأوامر المعلقة الأوامر المعلقة جميع الأوامر المفتوحة والمعلقة عند إسقاطها على الرسم البياني MT4. دونلواد كلوز كل نصوص الأوامر المعلقة المعلقة. في انتظار شراء أوامر مقياس السحب اسقاط N سكريبت تحميل في انتظار شراء أوامر مقياس يمكن اسحب N قطرة سيناريو بسرعة فتح أي عدد من الانتظار شراء (ق) ببساطة عن طريق سحب البرنامج النصي على مخطط MT4 في أي منطقة المطلوب أعلاه / أسفل العرض الحالي / السعر. ميتاترادر ​​إرسال الطلب سيناريو تحميل ميتاتريدر إرسال طلب سيناريو هو برنامج نصي لإدارة أوامر MT4 التالية: شراء السوق، بيع السوق، الحد شراء، الحد بيع، وقف شراء، وقف بيع. تحميل ميتاتريدر إرسال سيناريو طلب. فوريكس أوردر هيستوري MQ4 سيناريو داونلود فوريكس أوردر هيستوري mq4 سكريبت: فوريكس أوردر هيستوري يمكن أن يساعدك النص البرمجي mq4 على مراجعة صفقاتك السابقة. في الصور، سترى الصفقات "بيع وبيع الصفقات والخروج، واتخاذ الربح والتوقف. أوامر معلقة سيناريو تحميل أوامر معلقة سيناريو يمكن إرسال أوامر المعلقة في وقت محدد. أوامر المعلقة سيناريو يمكن وضع أمر وقف الشراء وبيع وقف النظام × نقطة من سعر السوق. عندما واحدة من أجل وقف شراء. إغلاق كل الأوامر المعلقة سيناريو دونلواد كلوز كل الأوامر المعلقة يلغي البرنامج النصي جميع الأوامر المعلقة عند إسقاطه على مخطط برنامج MT4. دونلواد كلوز كل نصوص الأوامر المعلقة. في انتظار شراء أوامر مقياس سيناريو تحميل في انتظار شراء أوامر مقياس يمكن سيناريو فتح بسرعة أي عدد من أمر الشراء المعلقة. تحميل في انتظار شراء أوامر نطاق المخطط. اغلاق جميع المراكز المعلقة سيناريو دونلواد كلوز جميع المراكز المعلقة سيناريو قريب من جميع مراكز العملات في الفوركس. دونلواد كلوز جميع العملات في انتظار المراكز النصية.

متعددة أمر معلق الفوركس mt4.
الميزانية $ 10-30 أوسد.
فريلانسر وظائف شل سيناريو متعددة في انتظار النظام Mt4 الفوركس.
النصي / إي مع الميزات التالية وظيفة.
دليل سعر السوق تغذية عند الحصول على طلب 1 في انتظار.
الفرق في النقاط بين الترتيب الأول في انتظار الأمر والطلبات المعلقة التالية (ق)
أي من الأوامر المعلقة لتوليد.
يجب أن ينشئ النص البرمجي أوامر إيقاف أو حد بناء على سعر السوق ولكن استنادا إلى المعايير المذكورة أعلاه.
(على سبيل المثال إذا كان النائب 1.1000 و 1 في انتظار سعر أمر معلق هو 1500 / عدد الأوامر المعلقة هو 10 / الفرق الفرق هو 100 / فإنه يجب إنشاء 5 الحد و 5 أوامر وقف)
مين ريق بالنسبة لي هو خلق 5 شراء الحد / 5 بيع الحد / 5 شراء وقف / 5 بيع وقف النظام في وقت واحد.
سعر الدخول لفترة طويلة وقصيرة مختلفة.
s / l و t / p. يجب أن تعمل حتى إذا تم تعيينها إلى 0.
عدد السحرية إلى أزواج العملات منفصلة / وثيقة وظيفة.
أي ميزات أخرى من اختيارك والتي قد تكون ضرورية أو اختيارية دون تعقيد السيناريو / إي.
تبحث لجعل بعض المال؟
تعيين ميزانيتك والإطار الزمني.
حدد مقترحك.
الحصول على أموال لعملك.
إنه مجاني للاشتراك وعرض الأسعار على الوظائف.
3 لحسابهم الخاص مناقصة في المتوسط ​​23 $ لهذه الوظيفة.
مرحبا، يرجى التحقق من رسالتي الخاصة واسمحوا لي أن أعرف ما رأيك، شكرا. جاك.
وظائف أخرى من هذا صاحب العمل.
وظائف مماثلة.
تحتاج إلى استئجار لحسابهم الخاص عن وظيفة؟
إنه مجاني للاشتراك، اكتب ما تحتاج إليه & أمب؛ تلقي اقتباسات مجانية في ثوان.
الإنجليزية - الولايات المتحدة (الدولية)
مستقل.
شروط.
فريلانسر & ريج؛ هي علامة تجارية مسجلة لشركة فريلانسر تيشنولوغي بتي ليميتد (أن 142 189 759)
كوبيرايت & كوبي؛ 2018 فريلانسر تيشنولوغي بتي ليميتد (أن 142 189 759)

طلب فوريكس للنص البرمجي
التنفيذ الفوري أصبح شيئا المدرسة القديمة وذلك هو التداول اليدوي في الوقت الحاضر. بفضل جياجي لي يمكنك تحميل أفضل شراء وقف بيع وقف دفعة إي مجانا.
أتوزفوريكس لا يحمل أي حقوق التأليف والنشر للحصول على أفضل شراء وقف بيع وقف دفعة إي، ولا لدينا رموز المصدر للملفات. ومع ذلك، نود أن نشارك احترامنا للمرمزين الأصلي الذي جعل هذه الملفات متاحة للجميع. ها نحن ذا!
أول شيء أولا، هل تعرف الفرق بين شراء وقف والحد الشراء؟ إذا كنت لا & # 8217؛ ر أوصي بشدة لدراسة حد الشراء و شراء الفرق توقف في الفوركس.
البرنامج النصي لفتح وقف بيع / وقف بيع.
أول واحد هو برنامج نصي بسيط لفتح وقف بيع / وقف بيع. هذا بوي ستوب سيل ستوب سكريبت يتم ضبطه تلقائيا بوي ستوب / سيل ستوب عندما يتم تنفيذ الصفقة المفتوحة (الشراء أو البيع).
هذا شراء وقف بيع وقف البرنامج النصي لديه منطق بسيط. لنفترض السيناريو التالي:
كنت قد وضعت للتو موقف طويل (شراء النظام) مع أمر فوري أو أمر معلق. سيتم تشغيل البرنامج النصي لفتح بوي ستوب / سيل ستوب لوضع أمر وقف البيع تحت موضع الشراء الأخير الذي لا يزال مفتوحا.
قل، على اليورو مقابل الدولار الأميركي لديك فتح أمر شراء في 1.1230 الليلة الماضية. سيتم تشغيل إي الذي هو برنامج نصي بسيط لفتح بوي ستوب / سيل ستوب لتعيين أمر وقف بيع عند 1.1210. يمكنك إدارة هذه المعلمات في أوامر الإدخال الخاصة بك لشراء وقف وقف بيع إي.
يمكنك ضبط المدخلات بسهولة. ببساطة، تغيير فاصل زمني بين سعر النظام المفتوح الخاص بك وشراء / بيع أمر وقف كنت ترغب في مؤامرة.
ف بروجريسف & # 8211؛ أفضل شراء وقف بيع وقف إي.
على غرار أول شراء وقف بيع وقف إي، ف التقدمي شراء وقف بيع وقف إي سوف نطاق في الصفقات الخاصة بك. هذا سيحدث كما سيتم تشغيل العمل السعر لصالحك.
التقدمي شراء وقف بيع وقف إي يستخدم أيضا إدارة المخاطر بالنسبة لك. سوف يوقف وقف شراء وقف بيع إي 2٪ إلى الإدخال الأول والأوامر المعلقة التالية سيكون أقل الأحجام الكثير من أجل تجنب أكثر من الاستفادة. وقف التقدمي وقف بيع وقف إي يستخدم وقف الخسارة على أساس أتر (متوسط ​​المدى الحقيقي). الرقم الافتراضي هو أتر (30) مضروبا في 2 من سعر الإدخال.
وفي الوقت نفسه الإدخالات الثلاثة المعلقة لديها أتر (30) / 2 المسافة بين بعضها البعض.
التقدمي شراء توقف بيع وقف إي كما يأتي مع السيناريو لحذف أوامر المعلقة إذا كنت قبل الأخبار الهامة أو نحو ذلك.

ميتاتريدر 4 سكريبتس & # 8211؛ 20 شورتكوتس ثات ميك يو موف فاستر ذان & # 8220؛ ذي فلاش & # 8221؛
فوتو كريديت & # 8211؛ الخيال العلمي.
ما هو MT4؟
ومن المعروف أيضا باسم ميتاتريدر 4، هو منصة التداول الإلكترونية التي تم تطويرها من قبل ميتاكوتس البرمجيات على وجه التحديد ومفيدة للغاية للوسطاء وصانعي السوق.
ما هي النصوص البرمجية؟
وهي مجموعة من الرموز التي يتم برمجتها لتنفيذ إجراء مع إما مزيج من أحرف لوحة المفاتيح الاكتئاب في وقت واحد أو بنقرة واحدة من الماوس.
ما هي البرامج النصية MT4؟
وهي رموز مكتوبة لغرض القيام بعمل واحد خلال مدة الغرض منه في البيئة حصريا لمنصة التداول MT4.
اختصارات التي يتم إنشاؤها لأداء مهمة في مجال التداول.
مبتدئ كلاس & # 8211؛ المحافظة على رأس المال.
الحفاظ على رأس المال هو الأولوية رقم واحد إذا كنت ترغب في أن تكون التاجر. هذا هو الفوركس أو الأسهم والسلع أو العقود الآجلة والخيارات أو السندات.
رأس المال الخاص بك هو السبب الذي يمكنك من التداول.
وبالتالي فإنه يذهب لإظهار لماذا نحن بحاجة إلى الحد أولا من خطر تعرض عندما نفتح الموقف.
تحتاج إلى تعلم لنقل توقف التعادل مرة واحدة في السوق يتحرك في صالحك أو التحرك توقف لحماية أي أرباح عندما يذهب السوق في طريقنا.
يجب أن تساعدك البرامج النصية التالية على تنفيذها بدون تأخير.
1. Buy_StopLoss - هذا البرنامج النصي يساعد على نقل موقف شراء لمستوى توقف المعينة الخاصة بك.
وهو يعمل مع أمر معلق والموقف المفتوح ومع ذلك فإنه لا يؤثر على كل موقف.
للتأثير على موضع شراء، يمكنك إنشاء اختصار باستخدام لوحة المفاتيح مثل & # 8220؛ ألت (أي حرف على لوحة المفاتيح) & # 8221 ؛.
بدلا من ذلك، يمكنك سحب وإسقاط مع البرنامج النصي على نافذة المخطط حيث كنت ترغب في إجراء تغييرات على زوج العملات.
2. Sell_StopLoss & # 8211؛ هذا السيناريو يعمل بنفس الطريقة المذكورة أعلاه. مختلف فقط هو، هو المقصود فقط لبيع الموقف.
وبالمثل، فإنه يعمل بشكل جيد مع أوامر المعلقة والنقر المزدوج على أنه لا يؤثر على جميع المواقف.
طريقة السحب والإفلات هي الأفضل لتنفيذ هذا والعديد من البرامج النصية أنا & # 8217؛ م الذهاب إلى ذكر أدناه.
عند النقر المزدوج أو القيام السحب والإفلات، في كلتا الحالتين، يفتح مربع الحوار مع إعدادات مثل هو مبين أدناه.
كما يظهر هذا النوع من البرنامج النصي يمنحك الخيار للتأثير على أوامر السوق أو الحد من أوامر تغيرت على وجه التحديد إما صحيحة أو خاطئة.
بعض التجار تحد من مخاطرهم من خلال عدد النقاط المسموح بها من خلال إدارة الأموال في حين أن آخرين تحد من مخاطرها من قبل مستوى السوق الحصول على رفض أو اختراق. في كلتا الحالتين، وقف الخسارة أمر لا بد منه.
3. Buy_StopLoss_Breakeven & # 8211؛ هذا البرنامج النصي يساعد على نقل موقف شراء إلى التعادل.
مستوى إذا كان السوق عكس المخاطر الخاصة بك محدودة. بشكل افتراضي، هذا البرنامج النصي يمنحك ربح 2 نقطة في حالة عكس السوق على الموقف الخاص بك.
انها تعمل فقط مع موقف مفتوح وأنها لا تؤثر على جميع أوامر.
للتأثير على موضع شراء، يمكنك إنشاء اختصار باستخدام لوحة المفاتيح مثل & # 8220؛ ألت (أي حرف على لوحة المفاتيح) & # 8221 ؛.
يمكنك سحب وإسقاط مع البرنامج النصي على نافذة المخطط حيث كنت ترغب في جعل حماية المخاطر الخاصة بك لزوج العملة المطلوبة.
4. Sell_StopLoss_Breakeven & # 8211؛ هذا السيناريو يساعد على نقل موقف بيع إلى التعادل. مستوى إذا كان السوق عكس المخاطر الخاصة بك محدودة.
بشكل افتراضي، هذا البرنامج النصي يمنحك ربح 2 نقطة في حالة عكس السوق على الموقف الخاص بك.
انها تعمل فقط مع موقف مفتوح وأنها لا تؤثر على جميع أوامر.
وبالمثل، فإنه يعمل فقط مع النظام المفتوح والنقر المزدوج على أنه لا يؤثر على جميع المواقف.
طريقة السحب والإفلات هي الأفضل لتنفيذ حد على خطورة على زوج العملة قيد التشغيل.
عند النقر المزدوج أو السحب والإسقاط يتم تنفيذ، يتم عرض مربع الحوار مع إعدادات مثل هو مبين أدناه.
كما يظهر هذا النوع من البرنامج النصي يمنحك سهولة الاستخدام عن طريق تحريك توقفك إلى التعادل.
وبهذه الطريقة، يتم تغطية المخاطر الأولية.
إذا عكس السوق مع تقلب عالية وأخرج توقف الخاص بك، لا الحنق مجرد فتح موقف آخر إذا كان السوق يظهر نفس التحيز.
في كلتا الحالتين، والحفاظ على رأس المال هو الأولوية رقم واحد، وهذا هو لضمان استمرارية حياتك المهنية والتاجر.
5. Buy_TakeProfit & # 8211؛ هذا البرنامج النصي سوف تساعدك على تحديد مستوى محدد سلفا التي تفترض أن السوق الصاعدة سوف تصل.
وهو يعمل مع انتظار شراء النظام ويفتح موقف شراء ومع ذلك فإنه لا يؤثر على كل موقف.
من أجل التأثير على موضع طويل، يمكنك إنشاء اختصار باستخدام لوحة المفاتيح مثل & # 8220؛ ألت (أي حرف على لوحة المفاتيح) & # 8221 ؛.
بدلا من ذلك، يمكنك سحب وإسقاط مع البرنامج النصي على نافذة المخطط حيث كنت ترغب في إجراء تغييرات على زوج العملات.
6. Sell_TakeProfit & # 8211؛ هذا السيناريو يعمل بنفس الطريقة المذكورة أعلاه. مختلف فقط هو، هو المقصود فقط لبيع الموقف.
وبالمثل، فإنه يعمل بشكل جيد مع أوامر البيع المعلقة والمفتوحة والنقر المزدوج على ذلك لا يؤثر على جميع المواقف.
وهناك طريقة السحب والإفلات هو الأفضل لضبط مستواك حيث كنت تعتقد أن السوق سوف تصل.
سوف النصوص المذكورة أعلاه يساعدك على تحديد هدف الربح، إلى حد كبير مثل الصورتين هو مبين أدناه.
للتاجر البقاء على قيد الحياة يجب أن تعلم أولا لحماية عاصمته.
ولكي يكون المتداول مربحا، يجب عليه أن يتعلم حماية أرباحه بغض النظر عن متى ومتى.
إذا كنت ترغب في جعل التداول الحية، يجب عليك أولا تعلم أن تأخذ الأرباح عندما الشكوك ركلة. في بعض الأحيان ترك المال على الطاولة هو أفضل وسيلة للتداول يوم آخر.
تمنحك النصوص البرمجية أعلاه خيار تعيين هدف الربح بمقدار نقطة أو مستوى حيث يصطدم الدعم والمقاومة.
فئة الهواة & # 8211؛ تنفيذ فقط عندما في وقت متأخر من الدخول أو اشتعلت في المأزق.
النصوص القليلة المذكورة هنا هي أن يتم تنفيذها إذا كنت في وقت متأخر على التجارة الخاصة بك أو شعرت أن هذا الاتجاه ينمو قوية.
حتى من دون هذا السيناريو أنا في كثير من الأحيان والأكثر تواترا تفعل نظام السوق فقط أن تخذل مع عكس.
لذلك حاول أن تمارس النص أدناه عندما كنت سنوات قبل منحنى التعلم الخاص بك.
سوف السوق إلى الأبد وهمية لك مع الشموع الكبيرة وعالية أعدت في المناطق الأكثر وضوحا.
7. كويك شراء / 8. كويك بوي & # 8211؛ المدخلات - كل من البرامج النصية تنفيذ بنفس الطريقة، ومختلفة فقط هي قيمة محددة سلفا والقيمة الجمركية.
يفتح هذا النص البرمجي نظام السوق عندما تكون صعودي بشأن زوج العملات.
أنا أوصي هذا السيناريو فقط عندما كنت تعرف ما تقومون به.
الجزء الجيد حول هذا السيناريو هو تلقائيا حساب النسبة المئوية لحجم اللوت الذي ترغب في المخاطرة قاعدة على حجم رأس المال التجاري الخاص بك ومواقف كان قد وضعت مسبقا.
مختلف فقط هو، هو المقصود فقط لبيع الموقف.
هذا السيناريو يفتح أمر السوق عندما تكون هبوطي حول زوج العملات.
أنا أوصي هذا السيناريو فقط عندما كنت تعرف ما تقومون به.
الجزء الجيد حول هذا السيناريو هو تلقائيا حساب النسبة المئوية لحجم اللوت الذي ترغب في المخاطرة قاعدة على حجم رأس المال التجاري الخاص بك ومواقف كان قد وضعت مسبقا.
I & # 8217؛ أرفق تعليقات شفرة المصدر لشرح المتغيرات.
11. كويك سي-تب تعديل / 12. كويك سي-تب تعديل المدخلات - كل من البرامج النصية تنفيذ بنفس الطريقة، ومختلفة فقط هي قيمة محددة سلفا والقيمة الجمركية.
يقوم هذا البرنامج النصي بتعديل المكان المفتوح فقط على وجه التحديد على زوج العملات الذي ترغب في إجراء تغييرات عليه.
وينطبق ذلك على وضع شراء أو أمر بيع. ليس لديها أي محامل على أوامر المعلقة.
ماستر كلاس & # 8211؛ التحوط أو الارتباط التداول.
التحوط كان تحظى بشعبية كبيرة في صناعة الفوركس كما تقلب السوق ضخمة.
وبالتالي حتى إذا كنت مخطئا على جانب واحد من السوق يمكنك منع نداء الهامش عن طريق وضع التجارة في الاتجاه المعاكس أو فتح زوج آخر من العملات التي لها نفس الارتباط كما الزوج خاسرة.
ومع ذلك، مع القيود المفروضة على التحوط فرض من قبل نفا و كفتك هذا لم يعد متاحا لمعظم السماسرة في الولايات المتحدة.
إذا كنت تفعل التحوط وأعتقد أن الوسيط لديه مكتب في الخارج والتي ليست ملزمة باللوائح.
كنت أول من تعرض لربط من قبل معلم سابق من الألغام.
وهو يحظى بشعبية كبيرة في منتدى فوركس فاكتوري & # 8217؛ والذي يعرف باسم T101. أسلوبه هو سلة التداول.
مقدمة موجزة من أسلوبه إذا كنت الصبر.
وقال انه سيفتح حساب 2 وسيط من أي واحد من شأنه أن يفتح كل 12 زوجا من زوج العملات في حين أن الآخر ينفذ الصفقات.
إذا كان كل 12 زوجا يتحول إيجابيا، وقال انه فتح أزواج العملات التي هي مربحة وتجاهل تلك الموجودة باللون الأحمر.
وبالمثل، إذا تحولت 12 زوجا سلبيا انه سيؤدي نفس المسح الضوئي وتنفيذ تلك الصفقات التي هي في الحمراء.
مع هذه المعرفة في الاعتبار، وأنا لا يلاحظ أن بعض ليس أكثر من الصلبان تفعل التأثير في اتجاه واحد إذا كان الاتجاه قوي.
وكذلك أزواج رئيسية أو الولايات المتحدة أزواج.
أزواج الولايات المتحدة فقط & # 8211؛ يوروس، غبوسد، أوسشف & أمب؛ NZDUSD.
لا تقنع؟ المزيد أدناه.
وبالتالي فإن النصوص التالية هي لاستخدامها إذا كنت على دراية جيدة مع إدارة الأموال، مشهد حريصة على الاتجاه وبارد القلب لخفض الخسارة دون خوف.
يمكنك تغيير اسم البرامج النصية لتناسب ترضيك ولكن يرجى إعطاء الائتمان بسبب مبرمج و إيبكس.
بونوس & # 8211؛ كسول التجار ينطبق.
20. أوندوك الرسم البياني - هذا هو النصي فريدة من نوعها التي تسمح لك لمشاهدة الرسم البياني الخاص بك بغض النظر عن المهمة التي تقومون بها.
وهذا يعني أنك يمكن أن تشاهد لك التجارة أثناء أداء مهمة مثل كتابة هذا بلوق أو مشاهدة يوتيوب أو الأفلام أو القيام بعمل في المكتب.
صورة تتحدث ألف كلمة في حين أن الفيديو يجعل كل شيء سهلا.
يرجى مشاهدة أدناه للحصول على فهم أوضح لكيفية عمله.
استنتاج.
هناك لديك، 20 اختصارات لجعل لكم أسرع من & # 8220؛ فلاش & # 8220 ؛.
بالمناسبة، إذا وجدت أنه مزعج لتحميل البرامج النصية هو مبين أعلاه واحدا تلو الآخر.
أنا & # 8217؛ إعداد جميع البرامج النصية 20 على الزر أدناه.
لم يكن لديك لإدخال عنوان البريد الإلكتروني الخاص بك لتحميلها.
أليس هذا عظيم؟!
ما هي البرامج النصية الأخرى التي تأتي عبر أو تستخدم حاليا لجعل التداول الخاص بك فعالة وسهلة؟ اسمحوا لي أن أعرف من خلال الكتابة في مربع التعليق فقط نهاية هذه المشاركة.
ما هي أداة التداول هي الأفضل؟
واحد أرباحك تأتي لك أكثر من غيرها.
هناك الملايين من الأشخاص الذين أتوا عبر الأدوات التي استخدمتها.
بعضها يجعل الأرباح من ذلك، والبعض الآخر تفريغها جانب واحد بعد زوبعة واحدة فقط أو بعد أن كان & # 8217؛ ر أداء.
لا توجد أداة واحدة تحقق أفضل أداء مثلما هو الحال في جزء واحد من الجسم يتفوق على غيره.
فإنه يأخذ كل شيء التصفيق.
كم من الوقت أحتاج إلى تحقيق أرباح متسقة كل شهر؟
أخذت 7 سنوات لتوليد ربح ثابت كل شهر إن لم يكن في المتوسط ​​شهر مربحة.
هل تحتاج إلى اتخاذ هذا الوقت الطويل للتعامل مع الصعود والهبوط من تداول العملات الأجنبية؟
في الأسبوع القادم، سأرسل إليك رسالة إلكترونية تسألك عما إذا كنت ترغب في المشاركة في أسلوب تعليمي مكون من 20 جزءا من النصائح والحيل وكيفية التعامل مع أنماط التداول وعلم النفس الشخصي والتقني تحليل.
لا يمكن العثور على هذه المعلومات في المدونة.
آمل أن تجد هذا الجزء 5 أفضل أداء أدوات سلسلة الجدير بالذكر، إن لم يكن قطرة لي خط هنا.
في الوقت نفسه يرجى حصة بحرية، على الجدول الزمني الفيسبوك، تيار تويتر الخاص بك وجوجل بلس.
إذا كنت جعلت من هنا من تويتر أو رابط من صديق، لماذا لا المضي قدما والتقاط سلسلة كاملة؟
هذا هو الدرس الأخير لتقرير مكون من 5 أجزاء عن أفضل الأدوات التي أستخدمها لجعل أكثر من 100٪ في أقل من سنة تداول فوريكس.
لم تظن أنني ذاهب إلى التخلي عنك هنا، أليس كذلك؟ بالطبع لا، أنا لن تفعل ذلك.
من وقت لآخر، ما زلت أرسل لك محتوى البرنامج التعليمي الذي أعتقد أن سيجعل لها تأثير كبير على نمو الأرباح الخاصة بك.
وسأرسل العرض العرضي لأداة عظيمة أعتقد أنه سيحدث فرقا بالنسبة لك.
لا البريد المزعج، لا الجبن، كل الأشياء الجيدة. أعدك. اراك قريبا!
فوريكس برايس أكتيون ترادينغ هاك حقوق الطبع والنشر 2018. جميع الحقوق محفوظة.

فتح ووضع أوامر.
يتم تشكيل طلبات التجارة لفتح ووضع الأوامر المعلقة باستخدام الدالة أوردرسند ().
فونكتيون أوردرسند ()
(يرجى ملاحظة أن هنا وأدناه، نشير إلى رأس وظيفة، وليس إلى مثال على كيفية استخدام استدعاء وظيفة في برنامج).
دعونا ننظر في مزيد من التفاصيل ما تتكون هذه الوظيفة من.
أوردرسند هو اسم الدالة. ترجع الدالة رقم التذكرة ("التذكرة" هي الرقم الفريد لأمر) الذي تم تعيينه للترتيب من قبل خادم التجارة، أو -1، إذا تم رفض طلب التجارة من قبل الخادم أو محطة العميل. من أجل الحصول على معلومات حول أسباب رفض طلب التجارة، يجب عليك استخدام وظيفة جيتلاستيرور () (أدناه سوف ننظر بعض الأخطاء الأكثر شيوعا).
الرمز هو اسم الأمن المتداول. كل رمز يتوافق مع قيمة متغير سلسلة. على سبيل المثال، بالنسبة لزوج العملات من اليورو / الدولار الأمريكي، هذه القيمة هي & أمب؛ كوت؛ يوروس & أمب؛ كوت ؛. إذا تم فتح الطلب لرمز مفهومة، فيمكن تحديد هذه المعلمة بشكل صريح: & أمب؛ كوت؛ يوروس & أمب؛ كوت ؛، & أمب؛ كوت؛ ورغب & أمب؛ كوت ؛، إلخ. ومع ذلك، إذا كنت ستستخدم مستشار الخبراء في نافذة أي رمز آخر، يمكنك استخدام الدالة القياسية الرمز (). ترجع هذه الدالة قيمة سلسلة تتوافق مع اسم الرمز، في الإطار الذي يتم تنفيذ إي أو البرنامج النصي.
سمد هو نوع العملية. ويمكن تحديد نوع العملية على أنها ثابت محدد مسبقا أو قيمته، ووفقا لنوع التجارة.
حجم هو كمية من الكثير. لأوامر السوق، يجب عليك دائما التحقق من حساب للكفاية. بالنسبة للأوامر المعلقة، كمية اللوت ليست محدودة.
السعر هو السعر المفتوح. يتم تحديدها وفقا للمتطلبات والقيود المقبولة لصنع الصفقات (انظر خصائص النظام وقواعد لجعل الصفقات). إذا لم يتم العثور على السعر المطلوب لفتح أوامر السوق في مؤشر أسعار أو إذا كان قد عفا عليها الزمن إلى حد كبير، يتم رفض طلب التجارة. ومع ذلك، إذا كان السعر عفا عليه الزمن، ولكن موجودة في مؤشر أسعار السعر وإذا كان الانحراف عن السعر الحالي يتراوح ضمن قيمة الانزلاق، سيتم قبول هذا الطلب التجاري من قبل محطة العميل وإرسالها إلى خادم التجارة.
الانزلاق هو الحد الأقصى المسموح به الانحراف من طلب سعر فتح الطلب من سعر السوق لأوامر السوق (نقطة). لا تتم معالجة هذه المعلمة لوضع الأوامر المعلقة.
ستوبلوس هو سعر الإغلاق المطلوب الذي يحدد الحد الأقصى للخسارة المسموح بها للتجارة المعطاة. يتم تعيينه وفقا للمتطلبات والقيود المقبولة لصنع الصفقات (انظر خصائص النظام والقواعد لجعل الصفقات والمتطلبات والقيود في جعل الصفقات).
تاكيبروفيت هو سعر الإغلاق المطلوب الذي يحدد الحد الأقصى للربح للتجارة معين. يتم تعيينه وفقا للمتطلبات والقيود المقبولة لصنع الصفقات (انظر خصائص النظام والقواعد لجعل الصفقات والمتطلبات والقيود في جعل الصفقات).
التعليق هو نص تعليق النظام. يمكن تعديل الجزء الأخير من التعليق بواسطة خادم التجارة.
السحر هو عدد السحر من النظام. ويمكن استخدامه كمعرف هوية معرف من قبل المستخدم. في بعض الحالات، هي المعلومات الوحيدة التي تساعدك على معرفة أن النظام ينتمي إلى برنامج واحد أو آخر فتحه. يتم تعيين المعلمة من قبل المستخدم. قيمته يمكن أن تكون هي نفسها أو غير قيمة هذه المعلمة من أوامر أخرى.
انتهاء الصلاحية هو تاريخ انتهاء صلاحية الطلب. حالما يأتي هذا اليوم، سيتم إغلاق النظام المعلقة تلقائيا على جانب الملقم. في بعض الخوادم التجارية، قد يكون هناك حظر لتحديد تاريخ انتهاء صلاحية الأوامر المعلقة. في هذه الحالة، إذا حاولت تعيين قيمة غير صفرية للمعلمة، سيتم رفض الطلب.
arrow_color هو لون السهم الافتتاحي في المخطط. إذا كانت هذه المعلمة غير موجودة أو إذا كانت قيمتها CLR_NONE، لا يظهر السهم الافتتاحي في المخطط على الإطلاق.
في بعض الخوادم التجارية، يمكن أن يكون هناك حد محدد للمبلغ الإجمالي للأوامر المفتوحة والمعلقة. إذا تم تجاوز هذا الحد، سيتم رفض أي طلب تجاري ينطوي على فتح أمر السوق أو وضع أمر معلق من قبل خادم التجارة.
فتح أوامر السوق.
قد تبدو الوظيفة أورديرسند () في البداية معقدة جدا. ومع ذلك، فإن جميع المعلمات تعتبر بسيطة جدا ومفيدة ويمكن استخدامها بنجاح في التداول الخاص بك. من أجل أن نرى هذا لأنفسنا، دعونا ننظر أبسط الاختلاف في كيفية استخدام وظيفة التجارة أوردرسند () لفتح نظام السوق.
أولا وقبل كل شيء، يجب أن نلاحظ أن وظيفة أوردرسند () معلمات محددة مسبقا (انظر استدعاء وظيفة ووظيفة الوصف وعودة المشغل). وهذا يعني أن هذه الوظيفة يمكن استخدامها في وضع مبسط باستخدام الحد الأدنى المطلوب من المعلمات. وهذه المعلمات هي كما يلي:
رمز هو المعلمة اللازمة، لأننا بحاجة إلى معرفة أين لفتح النظام. دعونا نصنا ينطوي ضمنا إمكانية لفتح أمر في أي نافذة رمز. في هذه الحالة، سوف نقوم باستبدال الوظيفة القياسية الرمز () مثل هذه المعلمة؛
سمد - على سبيل المثال، دعونا فتح أمر شراء. في هذه الحالة، وسوف نحدد المعلمة OP_BUY.
حجم - يمكننا تحديد أي قيمة تسمح بها القواعد؛ دعونا فتح أمر صغير، على سبيل المثال، من 0.1 لوت؛
السعر - سعر فتح للنظام شراء هو السعر أسك؛
وعادة ما يتم تحديد الانزلاق كما 0-3 نقطة. دعنا نحدد 2؛
ستوبلوس - أوامر وقف يمكن وضعها على مسافة ليست أقرب من الحد الأدنى المسموح به المسافة، عادة 5 نقاط (انظر المتطلبات والقيود في جعل الصفقات). دعونا وضع أوامر وقف على مسافة 15 نقطة من سعر الإغلاق، وهي: محاولة - 15 * نقطة؛
تاكبروفيت - دعونا مكان أوامر وقف على مسافة 15 نقطة من سعر الإغلاق، وهي: المزايدة + 15 * نقطة؛
وفيما يلي أبسط النصي، simpleopen. mq4، الذي يهدف إلى فتح أمر شراء:
إذا قمت بتشغيل هذا البرنامج النصي للتنفيذ، وسوف تعمل، في معظم الحالات. يتكون البرنامج النصي من وظيفة خاصة واحدة تحتوي على وظيفة فتح الطلب أوردرسند () وعودة المشغل. دعونا نصف خوارزمية التنفيذ لخطوط البرامج والأحداث المتعلقة بذلك.
1. يعلق المستخدم النص البرمجي على نافذة الرمز عن طريق سحب اسم البرنامج النصي باستخدام زر الماوس من & أمب؛ كوت؛ المستكشف & أمب؛ كوت؛ نافذة من محطة العميل في نافذة الرمز، والذي يريد أو فتح نظام السوق شراء 0.1 لوت ومع أوامر وقف التي هي على مسافة 15 نقطة من سعر السوق.
2. في لحظة إرفاق النص إلى نافذة الرمز، محطة العميل يمر عنصر التحكم (فقط عن طريق إطلاقه) o بدء وظيفة خاصة () (هنا يجب أن نذكر بإيجاز أن بداية () من البرنامج النصي أطلقت في لحظة إرفاق النص إلى نافذة الرمز، في حين أن بداية () من إي يتم إطلاقها في اللحظة التي أقرب دخل علامة للرمز).
3. في إطار تنفيذ بداية الدالة الخاصة ()، يتم تمرير عنصر التحكم إلى السطر الذي يستدعي وظيفة فتح الطلب:
قبل تنفيذ هذه الوظيفة، يحسب البرنامج قيم جميع المعلمات الرسمية:
3.1. نحن نعلق السيناريو على نافذة ور / USD. In هذه الحالة، فإن وظيفة رمز قياسي () سيعود قيمة سلسلة اليورو مقابل الدولار الأميركي.
3.2. اسمحوا أسك = 1.2852 ومزايدة = 1.2850 اعتبارا من لحظة استدعاء هذه الوظيفة.
3.3. قيمة ستوبلوس، في هذه الحالة، سوف تكون: 1.2850-15 * 0.0001 = 1.2835، في حين تاكيبروفيت = 1.2865.
4.Execution من وظيفة أوردرسند ():
4.1. شكلت الدالة طلب تجاري لفتح أمر واجتازت هذا الطلب إلى محطة العميل.
4.2. اجتازت الدالة عنصر التحكم إلى الوحدة التابعة للزبون في نفس الوقت مع تمرير طلب التداول، لذلك تم إيقاف تنفيذ البرنامج.
4.3. فحصت محطة العميل طلب التجارة المستلم. لم يكشف أي معلمات غير صحيحة، لذلك أرسلت الطلب إلى الملقم.
4.4. تلقى الخادم طلب التجارة، فحصه، لم يكشف عن أي معلمات غير صحيحة، وقررت تنفيذ الطلب.
4.5. نفذ الخادم الطلب من خلال إجراء معاملة في قاعدة البيانات الخاصة به وأرسل المعلومات حول هذا الطلب الذي تم تنفيذه إلى الجهاز الطرفي العميل.
4.6. تلقت محطة العميل المعلومات حول أن آخر طلب التجارة قد تم تنفيذها، وعرض هذا الحدث في إطار المحطة الطرفية وفي إطار الرمز، وعاد عنصر التحكم إلى البرنامج.
4.7. وبمجرد تلقي السيطرة، واصل البرنامج العمل من الموقع، الذي كان قد تم تمرير السيطرة سابقا إلى محطة العميل (والتي تم إرجاعها في وقت لاحق).
5. يتم تمرير السيطرة في البرنامج إلى المشغل التالي - المشغل 'العودة'.
6. تنفيذ "عودة" المشغل يؤدي إلى الخروج من بداية وظيفة ()، وبالتالي، في إنهاء تنفيذ البرنامج (ينبغي التذكير بأن البرامج النصية استكمال عملهم بعد أن يتم تنفيذها) - يتم إرجاع عنصر التحكم إلى محطة العميل.
وهكذا، فإن البرنامج النصي قد حققت الغرض المقصود منها: النظام يتم فتح شراء مع المعلمات مسبقا. استخدام البرامج النصية مريحة للغاية، إذا كنت في حاجة لأداء عملية صغيرة لمرة واحدة. في هذه الحالة، واستخدام السيناريو هو معقول جدا. وفقا للخطوة 4.6، يمكن للتاجر رؤية النظام في الشاشة.
الشكل 81. ترتيب وضعها النصي simpleopen. mq4.
الأحداث ليست دائما أمر كما هو مبين أعلاه. من الممكن أن يتم رفض طلب التجارة من قبل محطة العميل أو من قبل الملقم. لنحاول إجراء بعض التجارب، على سبيل المثال، تغيير اسم الرمز: حدد & أمب؛ كوت؛ غبوسد & أمب؛ كوت؛ صراحة (وهذا أمر مسموح به تماما). سوف نحصل على برنامج مع مجال الاستخدام المحدود:
دعونا إطلاق البرنامج النصي في نفس نافذة رمز ور / أوسد. وكان القصد من البرنامج النصي لفتح أمر في إطار غب / أوسد. ومع ذلك، بعد أن تم إرفاقه بنافذة يورو / أوسد، لم يتم فتح أي أمر في نافذة غب / أوسد.
ومن عيوب هذه البرامج تقييدها الوظيفي. في هذه الحالة، بمجرد إرفاق البرنامج النصي إلى نافذة الرمز، المستخدم ينتظر فقط لفتح النظام. ومع ذلك، لم يتم فتح الأمر. المستخدم ليس على علم بالسبب في ذلك: إما أنه ناتج عن خطأ حسابي في رمز البرنامج أو طلب التجارة هو & أمب؛ كوت؛ فقدت & أمب؛ كوت؛ عن طريق الطريق إلى الخادم، أو تم رفض طلب التجارة من قبل محطة العميل منذ وقت طويل (يعتقد المستخدم لا يزال ينتظر)، أو هناك سبب آخر.
من أجل توفير المستخدم (و، وهو أيضا مهم جدا، البرنامج) مع المعلومات حول الأحداث المتعلقة بتنفيذ طلب التجارة، فمن الضروري لمعالجة الأخطاء.
حدث خطأ أثناء المعالجة.
خاصية هامة جدا من محطة العميل هو أنه إذا حدث خطأ أثناء تنفيذ أحد التطبيقات، محطة العميل لا يتوقف تنفيذ البرنامج. وعادة ما تحدث الأخطاء بسبب النقص في الخوارزمية المستخدمة في التطبيق. في بعض الحالات، تحدث أخطاء بسبب بعض العوامل الخارجية (كما تتعلق بالبرنامج). الأسباب الداخلية للأخطاء هي أي انتهاكات لمتطلبات MQL4 أو قواعد التداول، على سبيل المثال، باستخدام أسعار غير صالحة. الأسباب الخارجية هي تلك التي لا علاقة لبرنامج التطبيق، على سبيل المثال، اتصال توقف.
إذا حدث خطأ عند تنفيذ برنامج، سيستمر البرنامج قيد التشغيل، في حين أن محطة العميل سوف تولد قيمة رمز الخطأ المتوفرة للبرنامج من خلال وظيفة جيتلاستيرور ().
وظيفة جيتلاستيرور ()
تقوم الدالة بإرجاع رمز الخطأ الذي تم حدوثه حديثا، ثم قيمة المتغير الخاص last_error الذي يقوم بتخزين رمز آخر خطأ سيتم الصفر. ستعود مكالمة جيتلاستيرور () اللاحقة 0.
من الآن فصاعدا، سوف نقوم بتحديد كل الأخطاء التي تحدث بواسطة هذا الرمز. يمكن أن تحدث عدة أخطاء أثناء تنفيذ البرنامج؛ وظيفة جيتلاستيرور () يسمح لنا للحصول على قيمة رمز واحد فقط منهم، وآخر خطأ، وهذا هو السبب في كل مرة عندما كنا بحاجة إلى هذه المعلومات، فمن المستحسن استخدام وظيفة جيتلاستيرور () مباشرة بعد خطوط البرنامج، والتي قد يحدث خطأ.
خطأ 130. أوامر إيقاف غير صالحة.
لا يقوم البرنامج النصي الأخير بتحليل الأخطاء، لذا يظل المستخدم جاهلا حول نتائج تنفيذ وظيفة فتح الطلب. في التباين البسيط من استخدام وظيفة جيتلاستيرور ()، يمكن للبرنامج تحليل خطأ ومجرد إبلاغ المستخدم حول هذا الموضوع. إذا قمت بإطلاق البرنامج النصي confined. mq4 للتنفيذ في إطار ور / أوسد، سيحدث خطأ.
لقد أضفنا خطا واحدا فقط، ولكن خطا مفيدا جدا في هذا النص البرمجي:
الدالة جيتلاستيرور () ترجع رمز الخطأ الأخير، بينما يتم استخدام التنبيه () لعرض هذه القيمة على الشاشة. بعد أن تم إرفاق سكريبت confq. mq4 إلى نافذة رمز ور / أوسد، سيتم تنفيذ البرنامج النصي، الأمر الذي سيؤدي إلى أن المستخدم سوف نرى الرسالة التالية:
الشكل 82. رمز الخطأ الذي تم الحصول عليه عند تنفيذ البرنامج النصي confined. mq4 في نافذة يورو / أوسد.
يمكنك أن تجد في الملاحق رموز الأخطاء التي يمكن أن تحدث عند تنفيذ البرنامج. في هذه الحالة، حدث خطأ 130 (أوامر توقف غير صالحة). وهذا يعني أن قيم المعلمات الرسمية المستخدمة في الدالة أورديرسند () لا تتوافق مع القيود المحددة في المتطلبات والقيود في جعل الصفقات. Upon a closer view, we can see the reason that caused the error: the current values of market prices Bid and Ask are taken from the symbol window, to which the script is attached, namely, from the window of Eur/Usd. However, these values are used to form a trade request for Gbp/Usd. As a result, at the current price of Gbp/Usd, Ask = 1.9655, the value of TakeProfit for the newly opened market order turns out to be equal to (for Eur/Usd Bid =1.2930) 1.2930+15*0.0001=1. 2945, which is considerably lower than the minimum allowed value, i. e., it is invalid.
In this case, an algorithmic error occurred. In order to correct it, you should use the correct values of symbol prices. You can obtain these values using the function MarketInfo(). Script improved. mq4 that opens market orders for Gbp/Usd can be launched in any symbol window:
The above error does not occur at the execution of this script, so its execution will result in displaying the corresponding message: 0 (zero). This means that the function GetLastError() returned the value of 0, i. e., no errors were detected in the execution of the trade request by the client terminal.
Let's also consider some other common errors. For this, let's return to the idea of opening an order using a script in the same window, to which the script is attached.
Error 129. Invalid Price.
In some cases, a simple error occurs - the wrong value of the two-way quote is specified as the open price. Market orders Buy are known (see Requirements and Limitations in Making Trades) to be opened at the Ask price. Below is shown what happens if we, by mistake, specify the Bid price in script mistaken. mq4:
Before sending the trade request to the server, the client terminal analyzes whether the requested values of price and stop orders comply with the allowed values. During this check, the requested open-order price will be detected as invalid, so the client terminal will not send the trade request to the server for execution, and function GetLastError() will return the value of 129 (see Error Codes). The execution of the script will result in appearance of the corresponding error message:
Fig. 83. Error 129 (invalid price) at the execution of mistaken. mq4.
Error 134. Not Enough Money for Making a Trade.
A similar result (error 134) will be obtained, if there are not enough free money on the account to open an order. You can know about the amount of free money required to open 1 lot for buying of each symbol using the function MarketInfo(symbol_name, MODE_MARGINREQUIRED).
The required amount of free assets for opening a one-lot order is inversely proportional to the amount of the provided leverage. At the same time, the cost of 1 point in the deposit currency for a symbol does not relate to the provided leverage.
Table 3. Possible combinations of 1-lot cost and 1-point cost (deposit currency is US dollar).
Prices are given as of 16.12.2007.
Let's briefly consider some common methods of calculating the cost of 1 lot and of 1 point.
Dealing Center 1 (most common)
For the symbols that have USD reciprocally, the cost of 1 lot is equal to the current price of the corresponding two-way quote multiplied by 1000, whereas the cost of 1 point is equal to $10.
For the symbols that have USD as their numerator, the cost of 1 lot is equal to $1000.00, whereas the cost of 1 point is inversely proportional to the current quote and equal to 1/(Bid). For example, for USD/CHF, at Bid= 1.2466, the cost of 1 point is 1/1. 2466 = 8.02.
For cross rates, the cost of 1 lot is calculated in the same way as that of the numerator currency, whereas the cost of 1 point is calculated in the same way as that for the denominator currency. For example, for EUR/CHF, the cost of 1 lot is 129.40 (as for EUR/USD), whereas the cost of 1 lot is 8.02 (as for USD/CHF).
Dealing Center 2.
In some dealing centers, considering the same rule of calculating costs, the values of costs can be different for some symbols. For example, the cost of 1 lot and the cost of 1 point may be proportionally increased or decreased. For example, this factor can be 0.75 for GBP/USD, whereas it is 2.0 for AUD/USD. Such representation of cost values does not result in any economical changes; in such cases, you just have to consider this special feature when calculating costs of your orders. You should also pay attention to the fact that the 1-lot costs for buying and selling of assets at cross rates are the same.
Dealing Center 3.
there are also dealing centers that set the cost of 1 lot as $1000.00 for any symbol. At the same time, the cost of 1 point remains proportional to the current prices. This implies setting a special leverage for each symbol.
Generally, there can exist other principles of building cost values. It is needless to say that, prior to start real trading, you should find out about the calculation method for any specific dealing center and consider this method in your coding.
At coding, it is very important to consider the principle of forming free assets. Free margin (assets) is the amount of money that is available for making trades.
Let's consider an example. Let Balance be 5000.00, there are no open orders in the terminal. Let's open a Buy order of 1 lot in dealing center 3. The following rule is stated in dealing center 3:
The terminal window will display the information about the opened order. Please note that the margin makes 1000.00, order profit is -30.00, therefore the amount of free assets (free margin) makes 5000-1000-30=3970.00:
Fig. 84. Order Buy in the terminal window.
After a Sell order of the same value has been opened, free margin will increase. The smaller integrated cost of one-direction market orders makes 1000.00, so the free margin will increase by 1000.00. In Fig. 85, you can see the situation where the differently directed orders cost the same value, so the entire sum of orders costs is released for trading.
Fig. 85. Orders Buy and Sell in the terminal window.
After a Sell order of smaller cost has been opened, free margin will increase, as well. In this case, the smaller integrated cost of one-direction market orders makes 700.00, so the free margin will increase by 700.00, whereas the margin makes the difference between the integrated costs of differently directed orders (Fig. 86).
Fig. 86. Orders Buy and Sell in the terminal window.
If one more order Sell of 0.1 lot is opened (cost 100.00), the smaller integrated cost of one-direction market orders makes 700.00 + 100. 00 = 800.00. Thus, the margin (as compared to the situation where only one order Buy is opened) decreases by 800.00. As compared to the situation shown in Fig. 86, the margin decreases, whereas the equity increases by 100.00 (see Fig. 87).
Fig. 87. Orders Buy and Sell in the terminal window.
Free Margins shown in Fig. 86 and Fig. 87 differ from each other by more than 100.00, since the integrated profit of open orders has changed with change in the current price (the difference makes 8.00).
If we make similar manipulations in another dealing center, it's easy to see that the above order of forming the value of free margin is not kept. For some dealing centers, the following rule is effective:
For example, if you have previously opened an order Buy of 4 lots for USD/JPY in dealing center 2, the amounts of equity and free margin will not change at opening of a 4-lot Sell order.
Fig. 88. The presence of differently directed orders does not release equity.
You can make calculations to know whether the current equity is enough for opening of an order. You can also use the function AccountFreeMarginCheck() that returns the value of free margin to remain after opening of a market order with certain amount of lots for a certain symbol. If the returned value is equal or more than 0, there are enough money on the account. If it is less than 0, then the order of this volume and for this symbol cannot be opened, the client terminal will return error 134.
In order to know the conditions offered by the dealing center and the amount of free margin required for opening of an order with the volume of 1 lot, you can use a simple script, conditions. mq4:
Here, the expression of.
allows us to calculate the difference between the available free margin and the free margin that will remain after opening of the order.
If we start this script for execution, when there are no market orders in the terminal, we can obtain the currently required amount of equity to be available and enough for opening of an order with the volume of 1 lot for buying and for selling:
Fig. 89. 1-Lot cost for different symbols, obtained using conditions. mq4.
If we launch the script conditions. mq4 for execution in the window of the symbol, for which there are opened market orders, we can obtain other values, it depends on the calculation methods accepted in one or another dealing center.
Other Errors and Function MarketInfo()
There are other limitations related to determining of values of parameters of function OrderSend(). This are the maximum and the minimum order price step, the maximum and the minimum order price value, etc. The use of function MarketInfo() allows you to get various information about symbols that are shown in the window "Market Watch" of the client terminal.
Function MarketInfo()
The function returns various information about symbols listed in the window "Market Watch" of the client terminal. Parts of information about the current symbol are stored in predefined variables.
symbol - the name of a symbol;
type - request identifier that determines the type of information to be returned. It can be either value of those of request identifiers (see Function MarketInfo Identifier).
Some errors may occur for the reasons on the server side. For example, in the conditions of transient prices, your broker may increase the minimum distance that limits placement of pending orders and stop orders. Further, at a calm market, the broker can decrease this distance again. Thus, the values of some parameters can be changed at any time.
For the program to operate in a stable manner, with the minimal amount of rejected requests, you should update the parameters of information environment used by the program using the functions MarketInfo() and RefreshRates() before you execute the function OrderSend().
The script consists of one special function start() (blocks 1-10). In block 1-2, the values are set, at which the order must be opened. Block 2-9 represents cycle operator while(), in which all necessary calculations are performed. This cycle is included into the code to allow the program make several attempts to open the order. In block 2-3, the environment variables are updated. In blocks 3-4-5-6, the amount of lots and the requested prices of stop orders are calculated. In block 7-8-9, errors are processed. In block 9-10, the message is printed that the script has completed its operations.
Let's consider some special features of a program code. It's easy to see that the trade request is formed in block 6-7. In block 3-4, the amount of lots is calculated. It also considers the situation when the available free margin is insufficient to open even an order with the minimum amount of lots. This is why, in block 3-4, after printing the message about insufficient money, we exit cycle 2-9 using the operator 'break'. The control is passed to block 9-10, and script completes its operations. The message in block 9 is unnecessary. It is given here just to help users of the code to find tails or heads in the script - when is the end of the program's operations and when is the pause caused by delays in the network or on the server.
If the free margin is sufficient for opening of the order, the control will be passed to block 4-5 and then to block 5-6. In those blocks, there is no cycle exit. This means that, for any minimum distance set by the broker, there will be corresponding stop levels found. In block 1-2, 3 points were chosen for TP by design. The majority of brokers set the minimum distance as 5 points. In block 5-6, the program will discover that the preset value is less than the allowed one. The program will set such a value of the stop-order price that does not contradict the limitation.
then the control is passed to block 6-7 to open an order. In the first line of this block, the message is printed. The trade request is formed only in the second line. A question arises: Why do we declare about forming a request before it is really formed? We could give the instruction first and then inform the user about it. The answer to this question is closely related to the technology of sending the request to the client terminal and then to the server (see Fig. 66). In our case, the trade request is formed in the function OrderSend() specified in the right part of the assignment operator. The trade request as such is created and sent to the server in the function, whereas the assignment operation will be executed in the assignment operator after the server has returned a reply about the "fate" of the request. Thus, the only possibility to inform the user about the start of events related to the request is to show the message before the assignment operator, in the right part of which the trade function is specified.
Sooner or later, the client terminal will pass the control back to the program, the assignment operator in block 6-7 will be executed, which will result in that the 'ticket' variable will take a value, and the control will be passed further - to error-analyzing block 7-8-9.
If the order is opened on the server, the number (ticket) of the opened order will be assigned to the variable 'ticket'. In this case, it means that the script has fulfilled its task and there is no need for the program to continue operations. In block 7-8, we use the operator 'break' to exit cycle while(). The control is passed to block 9-10 (outside the cycle), and the program completes its operations.
However, if the attempt to open an order fails, the control will be passed to block 8-9 for error analyzing. Two types of errors are considered here: those that still allow to hope for successful opening of the order and those, the occurrence of which means unambiguous termination of the program execution. The variable 'Error' is assigned with the code of the last error, in this case, of the error that has been returned by the server or by the client terminal at execution of function OrderSend().
In the first operator 'switch' of block 8-9, overcomable errors are considered. Each error in this group is processed differently. For example, if the price has changed (error 135), it is sufficient just to update the environment parameters using RefreshRates() and repeat the attempt to open an order. If the error "No prices" (error 136) occurs, there is no sense to re-send the request to the trade server. In this case, we should wait for a new tick to income (there are no prices on the server at this time, either) and, only after that, retry to open an order. This is why there is a waiting cycle in the block that processes error 136. This waiting cycle will be interrupted as soon as a new tick incomes. We exit the operator switch() using operator 'continue' that breaks the current iteration of the cycle while() and starts a new one.
Critical errors are processed in another way. If such an error occurs, the program will just inform the user about it and terminate operations. For this purpose, we use the operator 'break' (the last one in block 8-9) that breaks the cycle while(), which results in termination of the program.
We should note particularly that, in this example, we don't consider all errors without exceptions, by design. In this case, we are not aiming at providing the user with a ready-made program. It is very important that the programmer him or herself analyzes other errors and decides independently what else errors and in what way should be processed in the program. At the same time, some errors must not be processed, because the program is built in such a way that it does not imply occurrence of some errors, for example, in this case, of errors 129 and 130..
In the above example, there is a small algorithmic error that cannot be found at neither compilation nor in the client terminal, nor on the server.
Note the code in block 4-5:
As a result of calculations in the body of the operator if(), the variable Dist_SL can take a new value. Suppose a normal minimum distance makes 5 points. Suppose that at the first execution (in quick market), this value is set as 20 points on the server. The variable Min_Dist will take the value of 20.
Also suppose that the formed trade request has been rejected due to error 136. The program will track the new tick in block 8-9. Within this period of time, the value of the minimum distance can be changed on the server, for example, decreased to 10 points. At the moment when the new tick incomes, the control will be passed to the new cycle, and the new value of the variable Min_Dist, equal to 10, will be calculated. However, the value of the variable Dist_SL remains unchanged and equal to 20 (block 4-5 is coded in such a way that the value of Dist_SL can only increase). In order to exclude this algorithmic error, you should write block 4-5 in such a manner that only the value that depends on the situation would change (in this case, it is the value of SL), whereas the value of Dist_SL wouldn't change, for example, like this:
A similar change must be made in block 5-6 for the other stop order.
Placing Pending Orders.
There is no crucial difference in programming between placing of pending orders and placing of market ones.
You should only note the fact that the assets necessary to modify the pending order into a market one are checked for their sufficiency neither by the client terminal or by the server. They are not limited either. You can place a pending order for the amount that many times exceeds the amount of money available on your account. Such an order can be kept for indefinite periods of time. When the market price reaches the level of the open price requested for the pending order, there will be a check made on the server. If there are enough money on the account for opening this order, it will be modified into a market one (opened). If not, it will be deleted.
Function WindowPriceOnDropped()
In MQL4, we have a very important feature - we can determine programmatically in the symbol window the coordinates of the location, at which an Expert Advisor or a script has been placed, if they have been attached using a mouse. For example, we can obtain the ordinate value of attachment of the script using the function WindowPriceOnDropped().
The function returns the value of the price in the point of the chart, in which the EA or the script has been dropped. The value will be true only, if the EA or the script has been moved using a mouse ('drag and drop'). This value is not defined for custom indicators.
The structure of the script openbuystop. mq4 is built in the same way as that of the script openbuy. mq4, so there is no need to describe it in details. We will only turn our attention to basic differences between these programs.
The price, at the level of which the script has been attached to the symbol window, is determined in the line:
Subsequently, the value of this variable is kept unchanged during the entire period of operation of the program. This is necessary, if the script fails opening an order more than. At the same time, the script will every time calculate the requested value of the price close to the location (to the price level) where user attached the script.
It is easy to see that, in the script openbuystop. mq4, there is no check for sufficiency of free margin for opening of an order, but there is a check of the order open price (block 3-4). If the calculated value of the variable Price does not comply with the requirements of placing of a pending Stop order (see Order Characteristics and Rules for Making Trades, Requirements and Limitations in Making Trades), this value will be recalculated.
In the block of error processing, there are some small changes, as well: some errors are not considered, but the codes of some other errors are processed.
Reasonable Limitations.
As related to the use of trade functions, we should pay attention to some more general limitations. For example, error 146 occurs only, if several programs that form trade requests work in one symbol window. In our opinion, this practice is allowable, but not reasonable.
It would be much more efficient to create and use one trading program that would consider all special features of trading. If we use only one trading program, it is just impossible to form several trade request simultaneously. Moreover, the entire algorithm could be organized much better in such a program: consider the probability of successful trades and re-allocate money correctly, according to this probability.
For performing of trades, it is more efficient to use a full-scaled Expert Advisor, whereas a script would be better used for one-time calculations or for displaying some useful information on the screen. At the same time, if the trader does not use an Expert Advisor for automated trading, the use of scripts turns out to be more efficient than working with orders using the control panel of the client terminal.

Comments

Popular Posts