مساعدة في فهم Error Code (s) في MT4
Results 1 to 9 of 9

Thread: مساعدة في فهم Error Code (s) في MT4

  1. #1
    في الاختبار ، أحصل على خطأ داخلي في Error Code 0 في أوامر جانب الشراء فقط ولا نبيع الأوامر الجانبية.

    2 أسئلة:

    1. ما هو الخطأ الداخلي المرتبط برمز الخطأ 0 الذي اعتقدت أنه ليس خطأ؟

    2. لماذا أتلقى هذا الخطأ فقط في أوامر الشراء؟

    النتيجة المحددة المطبوعة هي: خطأ أثناء تعديل التعديل و TP من شراء أمر! رمز الخطأ: 0 خطأ داخلي
    والذي يتوافق مع التعديل الأول. بقدر ما استطيع ان اقول رمز شراء الجانب هو الصحيح.
    في ما يلي الكود المستخدم للوظيفة أدناه ... قد يبدو أن الكود يحتوي على reduny ، ومع ذلك فقد تم تصميمه للتأكد من أنه يتم إرسال نقاط التوقف الصعبة والنسخ الصعبة ويتم نشرها بعد ملء الطلب لوسطاء نوع ecnstp.


    Inserted Code void set_stop_tp () {int totalorders = OrdersTotal ()؛ for (int i = totalorders-1؛ igt؛ = 0؛ i--) {if (! OrderSelect (i، SELECT_BY_POS)) {Print (TimeToStr (TimeCurrent ()، TIME_SECONDS)، CHECK Function gt؛، __FUNCTION__، !! !!! ، رمز الخطأ = ، GetLastError ()) ؛ } النتيجة int ؛ التحقق من الشهرة {//تعديل إيقاف و TP على الخادم إذا لم يكن أثناء إدخال الطلب إذا (((OrderStopLoss () == 0) || (OrderTakeProfit () == 0)) (OrdersTotal () gt؛ 0) (UseHardStop == true) ) {RefreshRates ()؛/تعديل كلا من SL و TP إذا لم يتم ضبطهما بعد إذا ((OrderType () == OP_BUY) (OrdersTotal () gt؛ 0) (OrderSymbol () == Trade) ((OrderStopLoss () == 0) (OrderTakeProfit ( ) == 0))) result = OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderOpenPrice () - HardStop، OrderOpenPrice () HardTP، 0،0)؛ تحقق = GetLastError ()؛ إذا (تأكد من! = 0) {طباعة (خطأ أثناء تعديل التعديل و TP من أمر شراء! رمز الخطأ: ، GetLastError () ، ، ErrorDescription (تحقق)) ؛ } if ((OrderType () == OP_SELL) (OrdersTotal () gt؛ 0) (OrderSymbol () == Trade) ((OrderStopLoss () == 0) (OrderTakeProfit () == 0))) result = OrderModify ( OrderTicket ()، OrderOpenPrice ()، OrderOpenPrice () HardStop، OrderOpenPrice () - HardTP، 0،0)؛ تحقق = GetLastError ()؛ إذا (تأكد من! = 0) {طباعة (خطأ أثناء تعديل وقف TP أمر البيع! ​​رمز الخطأ: ، GetLastError () ، ، ErrorDescription (تحقق)) ؛ }/تعديل TP فقط إذا لم يتم ضبطه بعد إذا ((OrderType () == OP_BUY) (OrdersTotal () gt؛ 0) (OrderSymbol () == Trade) ((OrderStopLoss ()! = 0) (OrderTakeProfit () = = 0))) result = OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderStopLoss ()، OrderOpenPrice () HardTP، 0،0)؛ تحقق = GetLastError ()؛ if (check! = 0) {Print (Error during Modifying TP of Buy Order !!! Error code:، GetLastError ()،، ErrorDescription (check))؛ } if ((OrderType () == OP_SELL) (OrdersTotal () gt؛ 0) (OrderSymbol () == Trade) ((OrderStopLoss ()! = 0) (OrderTakeProfit () == 0))) result = OrderModify ( OrderTicket ()، OrderOpenPrice ()، OrderStopLoss ()، OrderOpenPrice () - HardTP، 0،0)؛ تحقق = GetLastError ()؛ if (check! = 0) {Print (Error during Modifying TP of Sell Order !!! Error code:، GetLastError ()،، ErrorDescription (check))؛ }/تعديل SL فقط إذا لم يتم ضبطه بعد إذا ((OrderType () == OP_BUY) (OrdersTotal () gt؛ 0) (OrderSymbol () == Trade) ((OrderStopLoss () == 0) (OrderTakeProfit ()! = 0))) result = OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderOpenPrice () - HardStop، OrderTakeProfit ()، 0،0)؛ تحقق = GetLastError ()؛ if (check! = 0) {Print (Error during Modifying Stop of Buy Order !!! Error code:، GetLastError ()،، ErrorDescription (check))؛ } if ((OrderType () == OP_SELL) (OrdersTotal () gt؛ 0) (OrderSymbol () == Trade) ((OrderStopLoss () == 0) (OrderTakeProfit ()! = 0))) result = OrderModify ( OrderTicket ()، OrderOpenPrice ()، OrderOpenPrice () HardStop، OrderTakeProfit ()، 0،0)؛ تحقق = GetLastError ()؛ if (check! = 0) {Print (Error In Modifying Stop of Sell Order !!! Error code:، GetLastError ()،، ErrorDescription (check))؛ }}

    تم إعادة نشر الرمز خارج مربعforexdropCode:
    *******************************

    void set_stop_tp ()
    {
    int totalorders = OrdersTotal ()؛
    لـ (int i = totalorders-1؛ igt؛ = 0؛ i--)
    {
    إذا (! OrderSelect (i، SELECT_BY_POS)) {
    Print (TimeToStr (TimeCurrent ()، TIME_SECONDS)، CHECK Function gt؛، __FUNCTION__، !!!!!، Error code =، GetLastError ())؛ }
    النتيجة int؛
    التحقق من الشهرة
    {

    //تعديل توقف و TP على الخادم إذا لم يكن خلال إدخال النظام
    if (((OrderStopLoss () == 0) || (OrderTakeProfit () == 0)) (OrdersTotal () gt؛ 0) (UseHardStop == true)) {RefreshRates ()؛
    //تعديل كلا من SL و TP إذا لم يتم ضبطهما بعد
    if ((OrderType () == OP_BUY) (OrdersTotal () gt؛ 0) (OrderSymbol () == Trade) ((OrderStopLoss () == 0) (OrderTakeProfit () == 0)))
    result = OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderOpenPrice () - HardStop، OrderOpenPrice () HardTP، 0،0)؛
    تحقق = GetLastError ()؛
    إذا (تأكد من! = 0) {طباعة (خطأ أثناء تعديل التعديل و TP من أمر شراء! رمز الخطأ: ، GetLastError () ، ، ErrorDescription (تحقق)) ؛ }

    if ((OrderType () == OP_SELL) (OrdersTotal () gt؛ 0) (OrderSymbol () == Trade) ((OrderStopLoss () == 0) (OrderTakeProfit () == 0)))
    result = OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderOpenPrice () HardStop، OrderOpenPrice () - HardTP، 0،0)؛
    تحقق = GetLastError ()؛
    إذا (تأكد من! = 0) {طباعة (خطأ أثناء تعديل وقف TP أمر البيع! ​​رمز الخطأ: ، GetLastError () ، ، ErrorDescription (تحقق)) ؛ }

    //تعديل TP فقط إذا لم يتم ضبطه بعد
    if ((OrderType () == OP_BUY) (OrdersTotal () gt؛ 0) (OrderSymbol () == Trade) ((OrderStopLoss ()! = 0) (OrderTakeProfit () == 0)))
    result = OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderStopLoss ()، OrderOpenPrice () HardTP، 0،0)؛
    تحقق = GetLastError ()؛
    if (check! = 0) {Print (Error during Modifying TP of Buy Order !!! Error code:، GetLastError ()،، ErrorDescription (check))؛ }

    if ((OrderType () == OP_SELL) (OrdersTotal () gt؛ 0) (OrderSymbol () == Trade) ((OrderStopLoss ()! = 0) (OrderTakeProfit () == 0)))
    النتيجة = OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderStopLoss ()، OrderOpenPrice () - HardTP، 0،0)؛
    تحقق = GetLastError ()؛
    if (check! = 0) {Print (Error during Modifying TP of Sell Order !!! Error code:، GetLastError ()،، ErrorDescription (check))؛ }

    //تعديل SL فقط إذا لم يتم ضبطه بعد
    if ((OrderType () == OP_BUY) (OrdersTotal () gt؛ 0) (OrderSymbol () == Trade) ((OrderStopLoss () == 0) (OrderTakeProfit ()! = 0)))
    result = OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderOpenPrice () - HardStop، OrderTakeProfit ()، 0،0)؛
    تحقق = GetLastError ()؛
    if (check! = 0) {Print (Error during Modifying Stop of Buy Order !!! Error code:، GetLastError ()،، ErrorDescription (check))؛ }

    if ((OrderType () == OP_SELL) (OrdersTotal () gt؛ 0) (OrderSymbol () == Trade) ((OrderStopLoss () == 0) (OrderTakeProfit ()! = 0)))
    result = OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderOpenPrice () HardStop، OrderTakeProfit ()، 0،0)؛
    تحقق = GetLastError ()؛
    if (check! = 0) {Print (Error In Modifying Stop of Sell Order !!! Error code:، GetLastError ()،، ErrorDescription (check))؛ }
    }

  2. #2
    لا أستطيع أن أتحدث عن أي شخص آخر ، ربما لأن لدي شاشة كمبيوتر صغيرة. ولكن بالنسبة لي ، فإن محاولة قراءة الشفرة تتطلب الكثير من التمرير من اليسار إلى اليمين والعودة مرة أخرى. مع الحاجة إلى التمرير ، لا يمكنني متابعة الرمز. هل اى احد لديه هذه المشكلة؟

  3. #3

    Quote Originally Posted by ;
    لا أستطيع أن أتحدث عن أي شخص آخر ، ربما لأن لدي شاشة كمبيوتر صغيرة. ولكن بالنسبة لي ، فإن محاولة قراءة الشفرة تتطلب الكثير من التمرير من اليسار إلى اليمين والعودة مرة أخرى. مع الحاجة إلى التمرير ، لا يمكنني متابعة الرمز. هل اى احد لديه هذه المشكلة؟
    أعتقد أنها مشكلة في مربع رمز FF. لدي نفس المشكلة. سوف نشر مرة أخرى أعلاه.

  4. #4
    أحيانًا يكون منطق الكود غريبًا ... MT4 أمر غريب حقًا أحيانًا ... لقد غيرت سطرًا واحدًا من التعليمات البرمجية وأزلت الخطوط الزائدة وفعلت الخطأ مرات أكثر ... لقد غيرت نفس السطر من الكود و KEPT الخطوط الزائدة عن الحاجة و اختفى خطأ الجانب شراء. void set_stop_tp () {int totalorders = OrdersTotal ()؛ for (int i = totalorders-1؛ igt؛ = 0؛ i--) {if (! OrderSelect (i، SELECT_BY_POS)) {Print (TimeToStr (TimeCurrent ()، TIME_ SECONDS)، CHECK Function gt؛، __FUNCTION__،! !!!! ، رمز الخطأ = ، GetLastError ()) ؛ } النتيجة int ؛ التحقق من الامتداد = GetLastError ()؛ ------ GT، GT، GT، GT. غيرت وأضفت = إلى GetLastError () {//Modify Stop و TP على الخادم إن لم يكن أثناء إدخال الأمر إذا (((OrderStopLoss () == 0) || (OrderTakeProfit () == 0)) (OrdersTotal () gt ؛ 0) (UseHardStop == true)) {RefreshRates ()؛/تعديل كلا من SL و TP إذا لم يتم ضبطهما بعد إذا ((OrderType () == OP_BUY) (OrdersTotal () gt؛ 0) (OrderSymbol () == Trade) ((OrderStopLoss () == 0) (OrderTakeProfit ( ) == 0))) result = OrderModify (OrderTicket ()، OrderOpen Price ()، OrderOpenPrice () - HardStop، OrderOpenPrice () HardTP، 0، 0)؛ تحقق = GetLastError ()؛ ------- GT، GT، GT، GT. الاحتفاظ بالتكرار = إلى GetLastErrors () على كافة التعديلات إذا (تحقق من! = 0) {طباعة (خطأ أثناء تعديل الأمر و أمر شراء TP !!! رمز الخطأ: ، GetLastError () ، ، ErrorDescription (تحقق))؛ } اختفى رمز الخطأ على جانب الشراء فقط ، وليس متأكدًا من سبب الحاجة إلى reduny ولكنه يعمل الآن بشكل نظيف.

  5. #5

    Quote Originally Posted by ;
    أحيانًا يكون منطق الكود غريبًا ... MT4 أمر غريب حقًا أحيانًا ... لقد غيرت سطرًا واحدًا من التعليمات البرمجية وأزلت الخطوط الزائدة وفعلت الخطأ مرات أكثر ... لقد غيرت نفس السطر من الكود و KEPT الخطوط الزائدة عن الحاجة و اختفى خطأ الجانب شراء. void set_stop_tp () {int totalorders = OrdersTotal ()؛ for (int i = totalorders-1؛ igt؛ = 0؛ i--) {if (! OrderSelect (i، SELECT_BY_POS)) {Print (TimeToStr (TimeCurrent ()، TIME_ SECONDS)، CHECK Function gt؛، __FUNCTION__،! !!!! ، رمز الخطأ = ، GetLastError ()) ؛ } النتيجة int ؛ التحقق من الشهرة = GetLastError () ؛ ...
    Pipologist - لسوء الحظ ، لم تقم بنشر الوظيفة بالكامل ، لذا فأنا لست متأكدًا تمامًا من سبب وجود هذا القوس المجعد هنا: إذا كان (! OrderSelect (i، SELECT_BY_POS)) {Print (TimeToStr (TimeCurrent ()، TIME_SECONDS)، CHECK Function gt؛، __FUNCTION__، !!!!!، Error code =، GetLastError ())؛ } النتيجة int ؛ التحقق من الشهرة {وبصرف النظر عن بعض reduny باستخدام هذه الكتلة عدة مرات: OrdersTotal () gt؛ 0) (OrderSymbol () == Trade) لم تحدد ما إذا كان يتم تعيين التوقفات ، وأظن أنها ليست كذلك. أود أن أضيف معلومات إضافية إلى بيان Print () ليس فقط من الشروط المختلفة التي يحدث فيها الخطأ ولكن ما هي نتيجة التوقفات التي قمت بحسابها: على سبيل المثال ، ما هي نتيجة OrderOpenPrice () HardTP إذا كان HardTP يساوي 50 على سبيل المثال و OrderOpenPrice () = 1.536 ستكون النتيجة 51.536

  6. #6
    لقد قمت بتحرير التعليمات البرمجية الخاصة بك لتسهيل قراءتها (بالنسبة لي على الأقل) تم إدراج Code code void set_stop_tp () {int check؛ int totalorders = OrdersTotal ()؛ for (int i = totalorders-1؛ igt؛ = 0؛ i--) {if (! OrderSelect (i، SELECT_BY_POS)) {Print (TimeToStr (TimeCurrent ()، TIME_SECONDS)، CHECK Function gt؛، __ FUNCTION__، !! !!! ، رمز الخطأ = ، GetLastError ()) ؛ } آخر إذا كان (OrderSymbol () == Trade) {//Modify Stop and TP on Server if not during Order Entry if ((OrderStopLoss () == 0 || OrderTakeProfit () == 0) UseHardStop) {//Modify both SL و TP إذا لم يتم تعيينهما بعد إذا كان (OrderType () == OP_BUY OrderStopLoss () == 0 OrderTakeProfit () == 0) إذا كان (! OrderModify (OrderTicket () ، OrderOpenPrice () ، OrderOpenPrice () - HardStop ، OrderOpenPrice ( ) HardTP، 0،0)) {check = GetLastError ()؛ طباعة (خطأ أثناء تعديل الأمر و TP من أمر شراء! رمز الخطأ: ، تحقق ، ، ErrorDescription (شيك)) ؛ } if (OrderType () == OP_SELL OrderStopLoss () == 0 OrderTakeProfit () == 0) if (! OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderOpenPrice () HardStop، OrderOpenPrice () - HardTP، 0،0 )) {check = GetLastError ()؛ طباعة (خطأ أثناء تعديل الأمر و TP من أمر البيع! ​​رمز الخطأ: ، تحقق ، ، ErrorDescription (شيك)) ؛ }/تعديل TP فقط إذا لم يتم ضبطه بعد إذا (OrderType () == OP_BUY OrderStopLoss ()! = 0 OrderTakeProfit () == 0) if (! OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderStopLoss ()، OrderOpenPrice ( ) HardTP، 0،0)) {check = GetLastError ()؛ طباعة (خطأ أثناء تعديل TP من أمر شراء! رمز الخطأ: ، تحقق ، ، ErrorDescription (تحقق)) ؛ } if (OrderType () == OP_SELL OrderStopLoss ()! = 0 OrderTakeProfit () == 0) if (! OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderStopLoss ()، OrderOpenPrice () - HardTP، 0،0)) {check = GetLastError ()؛ طباعة (خطأ أثناء تعديل TP من أمر البيع! ​​رمز الخطأ: ، تحقق ، ، ErrorDescription (تحقق)) ؛ }/تعديل SL فقط إذا لم يتم ضبطه بعد إذا كان (OrderType () == OP_BUY OrderStopLoss () == 0 OrderTakeProfit ()! = 0) if (! OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderOpenPrice () - HardStop، OrderTakeProfit ()، 0،0)) {check = GetLastError ()؛ طباعة (خطأ أثناء تعديل أوامر الشراء! رمز الخطأ: ، تحقق ، ، ErrorDescription (شيك)) ؛ } if (OrderType () == OP_SELL OrderStopLoss () == 0 OrderTakeProfit ()! = 0) if (! OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderOpenPrice () HardStop، OrderTakeProfit ()، 0،0)) {check = GetLastError ()؛ طباعة (خطأ أثناء تعديل أوامر البيع!رمز الخطأ: ، تحقق ، ، ErrorDescription (تحقق)) ؛ }}}}} كما ذكر cyber1 ليس هناك حاجة لإجراء عمليات فحص متكررة لـ OrdersTotalgt ؛ لأن الحلقة لن تنفذ إذا لم تكن هناك أوامر مفتوحة. لقد نقلت OrderSymbol () == التجارة لأنها تحتاج فقط إلى التحقق مرة واحدة. يمكنك استخدام result = OrderModify (OrderTicket () ، OrderOpenPrice () ، OrderOpenPrice () - HardStop ، OrderOpenPrice () HardTP ، 0،0)؛ لكنك لا تحقق بالفعل من القيمة. قد يكون الخطأ الأخير من مكان آخر في التعليمات البرمجية الخاصة بك لأنه لا يعتمد على ما إذا كان التعديل فشل أم لا. أيضا في الطباعة الخاصة بك ، يمكنك استخدام GetLastError (). عندما تحقق = GetLastError ()؛ يتم تنفيذ GetLastError () إلى 0. وهذا يعني أنه سيتم طباعة رمز الخطأ كـ 0 ، بغض النظر عن الخطأ. لقد قمت بتعديل الطباعة إلى استخدام الاختيار بدلاً من GetLastError () لاحظ أن قمت بتعديل التعليمات البرمجية للتحقق من الخطأ فقط في حالة فشل OrderModify

  7. #7

    Quote Originally Posted by ;
    {quote} - للأسف لم تقم بنشر الوظيفة بأكملها ، لذا فأنا لست متأكدًا تمامًا من سبب وجود هذه الشريحة المجعدة المفتوحة هنا: if (! OrderSelect (i، SELECT_BY_POS)) {Print (TimeToStr (TimeCurrent ()، TIME_SECONDS)، فحص الدالة gt؛، __FUNCTION__، !!!!!، رمز الخطأ =، GetLastError ())؛ } النتيجة int ؛ التحقق من الشهرة {وبصرف النظر عن بعض reduny باستخدام هذه الكتلة عدة مرات: OrdersTotal () gt؛ 0) (OrderSymbol () == Trade) لم تحدد ما إذا كان يتم تعيين التوقفات ، وأظن أنها ليست كذلك. أود أن أضيف معلومات إضافية ...
    شكرا لك ... إغلاق قوس مفتوح في وقت لاحق ، لم أكن أظهر بقية وظيفة mgmt للخطر لأن بعض algos الأخرى المرتبطة بها هي ملكية خاصة. لم أختبر عن طريق إزالة المكرر OrdersTotal () gt؛ 0) (OrderSymbol () == التجارة) كما اقترحت أنت و Gumrai ، ومع ذلك ، كما ذكرت في المرة الأخيرة انها اختبار تماما الآن حتى مع الطلبيات المكررة () مجموع GT. 0) (OrderSymbol () == Trade) بقدر ما تكون قيم HardTP ، HardSL ، فهي بخير. شكرا لكم.

  8. #8

    Quote Originally Posted by ;
    لقد قمت بتحرير شفرتك لتسهيل قراءتها (بالنسبة لي ، على الأقل)
    لم أختبر عن طريق إزالة المكرر OrdersTotal () gt؛ 0) (OrderSymbol () == التجارة) كما اقترحت أنت و Cyber1 ، ومع ذلك ، كما ذكرت في المرة الأخيرة أنها تختبر تماما الآن حتى مع الطلبيات المكررة (). 0) (OrderSymbol () == Trade) بقدر ما تكون قيم HardTP ، HardSL ، فهي بخير. شكرا لكم.

  9. #9

    Quote Originally Posted by ;
    أيضا في الطباعة الخاصة بك ، يمكنك استخدام GetLastError (). عندما تحقق = GetLastError ()؛ يتم تنفيذ GetLastError () إلى 0. وهذا يعني أنه سيتم طباعة رمز الخطأ كـ 0 ، بغض النظر عن الخطأ. لقد قمت بتعديل الطباعة إلى استخدام الاختيار بدلاً من GetLastError () لاحظ أن قمت بتعديل التعليمات البرمجية للتحقق من الخطأ فقط في حالة فشل OrderModify
    ربما كان هذا جزءًا من المشكلة الأصلية. شكرا لكم.

أذونات النشر

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  
  • رمز BB مفعل
  • الابتسامات مفعلة
  • رمز[IMG] مفعل
  • رمز [VIDEO] مفعل
  • رمز HTML غير مفعل
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.