PDA

View Full Version : مشكلة الترميز: مفتوح [1]



podynsdy
02-16-2009 19:29, 07:29 PM
أواجه بعض المتاعب في برمجة خط. أنا أتطلع إلى أن يكون بين متطلبات فتح يكون 12 EMA لا أكبر من فتح الشريط. أفعل المعاملات لمحاولة عدم فتح في سوق جانبية.

هذا هو سطر الكود:

if ((Close [2] gt؛ = Close [1]) (Open [1] gt؛ = Open [0]) (Open [1] gt؛ ema12) (ema12 gt؛ ema24)) upcandle = true؛

رمز ema12gt؛ ema24 يعمل بشكل جيد ، لكن Open [1] gt؛ ema12 لا يقوم بهذه المهمة. في اختبار الظهر هناك مناسبات حيث يوجد تداول فتح تحت ema12.

اقتراحات؟؟؟

شكر!

obtaobcctt
11-10-2021 10:41, 10:41 AM
فتح [1] هو السعر المفتوح للشريط السابق ... فمن الممكن أن يكون الشريط الحالي قد ذهب تحت 12ema بالإضافة إلى ذلك ، ما هو التحول لمتغير EMA12 الخاص بك؟ هل هو 1 أو 0؟

Sr.dibb
11-10-2021 12:02, 12:02 PM
تبين لنا الرمز الذي هو

podynsdy
11-10-2021 13:22, 01:22 PM
1 مرفق (ق) رونالد - حاولت إضافة تحول إلى EMA ، ولكن انتهى فقط برد خطأ من غير متوقع [. لقد أرفقت صورة توضح كيف من المفترض أن تعمل الآلة في أول عملية تجارية معروضة. لا ينبغي أن تكون التجارة الثانية قد حدثت لأن [1] تحت خط الـ 12 ema. وأكسانا ، حسب طلبك:/ --------------------------------------- --------------------------- /| Safe Pip EA.mq4 |/| |/| |/ ----------------------------------------------- ------------------- #property copyright #property Hyperlink extern double Lots = 0.1؛ extern double StopLoss = 15؛ extern double TakeProfit = 15؛ extern double MaxTotalOrders = 1؛ extern double MaxOmegaIBOrders = 1؛ extern bool MakeTrades = True؛ extern bool NoisyAlerts = True؛ extern Int TrailingStop = 10؛ extern Int BreakEven = 6؛ extern int maxLots = 1؛/ ----------------------------------------------- ------------------- /| وظيفة التهيئة الخبير |/ ----------------------------------------------- ------------------- stat int int_num = -1؛ int init ()/- order_num = -1؛/- return (0)؛/ ----------------------------------------------- ------------------- /| وظيفة انحياز خبير/ ----------------------------------------------- ------------------- int deinit ()/-/- return (0)؛/ ----------------------------------------------- ------------------- /| وظيفة بداية الخبراء/ ----------------------------------------------- ------------------- int start ()/- int cnt، ticket، total؛ double ema12، ema24؛/- نقل لكسر حتى مجموعة/- خطوط Ema المحددة ema12 = iMA (NULL، 0،12،0، MODE_EMA، PRICE_CLOSE، 0)؛ ema24 = IMA (NULL، 0،24،0، MODE_EMA، PRICE_CLOSE، 0)؛/- التحقق لمعرفة ما إذا كان هناك إشارة bool upcandle شمعة = كاذبة ؛ bool downcandle = false؛ if ((Close [2] gt؛ = Close [1]) (Open [1] gt؛ = Open [0]) (Open [1] gt؛ ema12) (ema12 gt؛ ema24)) upcandle = true؛ if ((Close [1] lt؛ Open [0]) (High [1] lt؛ ema12)) downcandle = true؛/check for buy or sell signal bool buy = false؛ bool sell = false؛/إذا كان سعر الطلب في الشريط الحالي أكبر من 2 نقطة من الشمعة السابقة الثانية و 12ema/فوق 24 ema فهذا يعني إشارة شراء إذا ((Ask == High [2] 3 * Point ) (ema12 gt؛ ema24)) buy = true؛/إذا كان سعر المناقصة في الشريط الحالي أقل من 2 نقطة من الشمعة السابقة الثانية و 12ema/أقل من 24 ema فهذا يعني إشارة شراء إذا (((Low [2] == Bid) gt؛ 2 * Point) (ema24 gt؛ ema12)) sell = true؛ if (upcandle) ObjectCreate (upcandle Time [1]، OBJ_ARROW، 0، Time [1]، Low [1] -2 * Point)؛مجموعه = OrdersTotal ()؛ إذا كانت (totallt؛ 1) إذا كانت (شراء) التذاكر = OrderSend (Symbol ()، OP_BUY، Lots، Ask، 0، Ask-StopLoss * Point، Ask TakeProfit * Point، SafePip، 12345،0، Green)؛ ObjectCreate (buyl Time [1]، OBJ_RECTANGLE، 0، Time [0] - (Time [0] -Time [1]) * 0.5، Low [0] -2 * Point، Time [0] (Time [0 ] -Time [1]) * 0.5، Low [0] -2.5 * Point)؛ إذا (NoisyAlerts) PlaySound (alert.wav)؛ if (ticketgt؛ 0) if (OrderSelect (ticket، SELECT_BY_TICKET، MODE_TRADES)) Print (BUY order مفتوح: ، OrderOpenPrice ())؛ طباعة أخرى (خطأ في فتح أمر الشراء: ، GetLastError ())؛ عودة (0)؛ if (BreakEvengt؛ 0) if (Bid-OrderOpenPrice () gt؛ Point * BreakEven) if (OrderStopLoss () lt؛ OrderOpenPrice ()) OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderOpenPrice () Point * 1، OrderTakeProfit ( )، 0، رمادي)؛* update trailing stop *if (TrailingStopgt؛ 0) if (Bid-OrderOpenPrice () gt؛ Point * (TrailingStop)) if (OrderStopLoss () lt؛ Bid-Point * TrailingStop) OrderModify (OrderTicket ()، OrderOpenPrice () ، المزايدة نقطة * TrailingStop، OrderTakeProfit ()، 0، رمادي)؛ عودة (0)؛ عودة (0)؛/ ----------------------------------------------- ------------------- إنه عمل مستمر ، وهناك أشياء أقوم بالفعل بتغييرها. أنا على علم بعدم وجود ترميز لشرط أستخدم فقط مستويات SL أو TP.

bavi7799
11-10-2021 14:43, 02:43 PM
ربما تكون المشكلة في حقيقة أنك تقوم بحساب EMA على الشمعة الحالية واستخدام بداية الشمعة السابقة لتحديد نقطة الدخول. قم بتغيير إعدادات ema لفحص الشمعة السابقة أيضًا: ema12 = iMA (NULL، 0،12،0، MODE_EMA، PRICE_CLOSE، 1)؛ ema24 = IMA (NULL، 0،24،0، MODE_EMA، PRICE_CLOSE، 1)؛