على استعداد تقريبا EA ، يعمل رمز لأوامر BUY ، ولكن ليس أوامر بيع
Results 1 to 7 of 7

Thread: على استعداد تقريبا EA ، يعمل رمز لأوامر BUY ، ولكن ليس أوامر بيع

  1. #1
    اهلا بالجميع.

    أنا جديد في هذا المنتدى ، ولكن ليس جديدًا لتوجيه التداول و EA. أنا سعيد للغاية لرؤية النشاط في cavemantrading ونتطلع إلى التعرف عليك.

    أنا على استعداد تقريبا مع بلدي EA بسيطة بسيطة ، ولكن على أساس ترميز SL ordermodify لصفقات قصيرة.

    ما أحاول تحقيقه هو ذلك ؛
    عندما يصل السعر إلى 20 نقطة الربح: ضبط SL من -40 نقطة إلى -20 نقطة. (تقليل SL في النصف)
    عندما يصل السعر إلى 40 نقطة الربح: Stop Trax Stop (. كسر )

    هذا يعمل بشكل جيد لمراكز LONG ، ولكن ربما ليس للمناصب المختصرة.
    إذا كان أي شخص يستطيع تحديد خطأحل واضح ، سأكون ممتناً إلى الأبد.

    هنا هو الرمز:

    كود مدرج مزدوج newSL if ((Bid-OrderOpenPrice ()) gt؛ = 200 * Point) newSL = OrderOpenPrice () - 200 * Point؛ if ((Bid-OrderOpenPrice ()) gt؛ = 400 * Point) newSL = Bid- (TrailingStop * Point)؛ newSL = NormalizeDouble (newSL، سيارة)؛ if (newSLgt؛ OrderStopLoss ()) OrderModify (OrderTicket ()، OrderOpenPrice ()، newSL، OrderTakeProfit ()، 0، Green)؛ عودة (0)؛ } else/move to brief position if ((OrderOpenPrice () - Ask) gt؛ = 200 * Point) newSL = OrderOpenPrice () 200 * Point؛ if ((OrderOpenPrice () - Ask) gt؛ = 400 * Point) newSL = (TrailingStop * Point) Ask؛ newSL = NormalizeDouble (newSL، سيارة)؛ if (newSLlt؛ OrderStopLoss ()}
    شكرا مسبقا،
    Oddvin

  2. #2

    Quote Originally Posted by ;
    if ((OrderOpenPrice () - Ask) gt؛ = 200 * Stage) newSL = OrderOpenPrice () 200 * Stage؛ if ((OrderOpenPrice () - Ask) gt؛ = 400 * Stage) newSL = (TrailingStop * Stage) Ask؛
    ربما هذا هو حقا خطأ مطبعي ويجب أن يكون مثل ذلك: كود مدرج newSL = NormalizeDouble (# 91؛ color = Red # 93؛ newSL # 91؛color # 93؛، Digits)؛ ملاحظة: يرجى التفاف التعليمات البرمجية الخاصة بك إلى علامات CODE عند النشر هنا من المنتدى للحفاظ على التنسيق. بالإضافة إلى ذلك ، يُعتبر دائمًا أسلوبًا سيئًا (استعدادًا سيئًا) لاستخدام النموذج القصير لخط واحد في حالة التركيب. يجب عليك أن تجعل قراء الكود الخاص بك صالحًا واستخدام البنية الطويلة ، على الرغم من أنه يسمح له بترك الأقواس.

  3. #3
    7bit ، شكرا لك على ملاحظتك. للأسف ، كان خطأ مطبعي في منصبي ، ولكن ربما لا يكون السبب وراء خطأ في ترتيب SELL. ما يحدث غريب جدا. بمجرد فتح أمر SELL (مع SL الصحيح) ، فإنه يعدل ويقضي على SL تمامًا. عندما يصل السعر إلى الهدف الأول ( 20pip) لصالحي ، فإنه يضيف SL جديد وإذا كان السعر يتحرك bacward ، فإنه يلغي SL مرة أخرى. بالنسبة لتعليقك الآخر ، فأنا جديد تمامًا في التواصل ومنتديات FX ، لذا يرجى إعذاري إذا لم أكن بعد نزاهة المنتدى المشتركة. هل تقصد أنه يجب علي إرسال رمز EA؟ شكرا لكم على مساعدتكم الكريمة.

  4. #4

    Quote Originally Posted by ;
    هل تعتقد أنني يجب نشر رمز EA بأكمله؟ شكرا لكم على مساعدتكم الكريمة.
    الهدف هو السماح لك بإصلاح هذه المشكلة بنجاح. أولاً ، يجب أن تتعلم استخدام الاستخدام الواسع لهذا العمل Print () ، وهذا هو أهم صديق عندما يتعلق الأمر بالتصحيح. انتقل عبر التعليمات البرمجية الخاصة بك كما لو كنت جهاز الكمبيوتر (حيث تشعر أن الكمبيوتر ينتقل إلى ما بعد الرمز) والطباعة في كل خطوة كل عامل قد يكون له بعض التأثير للتأكد من أن الكمبيوتر يقوم بالفعل بالضبط ما تعتقد أنه سيفعله. اجعلها بذلك تخبرك حرفياً بما تقوم به بالضبط وما الذي يحدث وما إذا كانت تنفذ ، فسوف يظهر لك بسرعة أين تكون المشكلة. مدرج رمز الطباعة (دخلت لحظة إذا القسمة.) ؛ طباعة (تم ترتيب هذا SL: ، OrderStopLoss ())؛ طباعة (لدى newSL حاليًا هذا الاحترام: ، newSL) ؛ طباعة (استدعاء OrderModify () بهذه القيم: newSL، ...، ...)؛

  5. #5
    شكرا لك على المدخلات ونصائحك. لعبت مع بعض tweakings إلى أي استخدام وكاد يعطي في لول. ثم فهمت أن EA تعرف في البداية على قيمة newSL (مثل أوامر SELL) على أنها صفر ، وبالتالي غيرت الترتيب على الفور من SL. بمجرد أن أضع هذا الخط البسيط في الأعلى: newSL = OrderStopLoss ()؛ ، اختفت القضية. تمكنت من تنفيذ TrailingStep. لا يوجد شيء كبير ، ولكن بالنسبة لمبرمج مبتدئ مثلي فهو إنجاز رائع ومفيد للغاية: - RRB- NEW CODE: Inserted Code else/move to short standing {newSL = OrderStopLoss ()؛ if ((OrderOpenPrice () - Ask) gt؛ 200 * Stage) newSL = OrderOpenPrice () (200 * Stage)؛ if ((OrderOpenPrice () - Ask) gt؛ 400 * Stage) newSL = Ask (Point * TrailingStop)؛ {newSL = NormalizeDouble (newSL، Digits)؛ if (((OrderStopLoss () - (TrailingStep * Stage)) gt؛ newSL) || (OrderStopLoss () == 0)) OrderModify (OrderTicket ()، OrderOpenPrice ()، newSL، OrderTakeProfit ()، 0، Red)؛ عودة (0)؛ لا أعرف لماذا هذا مطلوب لأوامر الاقتصاد فقط ، ولكن يبدو أن العمل بسلاسة.

  6. #6

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

  7. #7
    أنت بالطبع على حق. بمجرد التفكير فيه من المنطقي. شعور رائع للحصول على حلها.

أذونات النشر

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  
  • رمز 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.