PDA

View Full Version : مساعدة في ترميز النظاممكافحة EA



ثمينة شهرزاد
02-09-2009 17:06, 05:06 PM
تحية طيبة!

أعتقد أنني أتابع القصة المعتادة هنا. جديد إلى MQL4 ، بعض خلفية الترميز (BASIC و HTML) ، بلاه ، بلاه ، بلاه ، الآن أنا أحاول يدي في كتابة EA الخاصة.

إنه لا شيء خاص. أنا أعمل على EA EA الاختراق. كما أنها واحدة من أول ما اعتقدت أنني سأبقيه بسيطًا. لذلك تعمل EA على أساس فتح شريط أسفل 20 EMA ثم تغلق فوق الخط. في الشريط التالي يفتح طلبًا بمقدار 3 نقاط أعلى ارتفاع شريط سابق. نظرًا لأنه عبارة عن EA أساسي ، يتم إغلاق الطلب عند الوصول إلى نقطة TP أو SL ، لا يحتوي على ترميز آخر لإغلاق أحد الطلبات.

ها هي المشكلة. النسخة الأولى التي قمت بفتحها أمر بعد كل علامة. لطيفة عندما يكون لديك تجارة مربحة ، تمتص عندما لا تفعل ذلك. لذا في الإصدار 2 حاولت إضافة كود مضاد من EA آخر ووجدت أنه الآن لا يفتح أي صفقات.

إليك رمز الإصدار 1 (آسف ، لا أعرف كيفية وضعه في مربع صغير أنيق):

بداية int ()
{
//----

int cnt، total، ticket؛


double emaT = iMA (NULL، 0،20،0، MODE_EMA، PRICE_CLOSE، 0)؛
double MacdCurrent = iMACD (NULL، 0،12،26،9، PRICE_CLOSE، MODE_MAIN، 0)؛

مجموعه = OrdersTotal ()؛
إذا (totallt؛ 1)


bool buy = false؛
bool sell = false؛

if ((اسأل == High [1] gt؛ 3 * Point) (فتح [1] lt؛ emaT) (Close [1] gt؛ emaT) (MacdCurrent gt؛ 0)) buy = true؛
if ((Low [1] == Bid ​​gt؛ 3 * Point) (emaT gt؛ Close [1]) (Open [1] gt؛ emaT) (MacdCurrent lt؛ 0)) sell = true؛


{
إذا (شراء)


ticket = OrderSend (Symbol ()، OP_BUY، Lots، Ask، 0، Ask-StopLoss * Point، Ask TakeProfit * Point، Momo Trade، magicnumber، 0، Green)؛
إذا (ticketgt، 0)

إذا (OrderSelect (تذكرة، SELECT_BY_TICKET، MODE_TRADES))


عودة (0)؛
}

{
إذا (بيع)


ticket = OrderSend (Symbol ()، OP_SELL، Lots، Bid، 0، Bid StopLoss * Point، Bid-TakeProfit * Point، Momo Trade، magicnumber، 0، Red)؛
إذا (ticketgt، 0)

إذا (OrderSelect (تذكرة، SELECT_BY_TICKET، MODE_TRADES))

عودة (0)؛

}

عودة (0)؛
}
//----

الإصدار 2 هو نفسه ، ولكن مع إضافة هذا الرمز إلى عداد:

أوامر = OrdersTotal ()؛
ل(المركز الوطني للاستشعار = 0؛ cntlt، OrdersTotal ()؛ المركز الوطني للاستشعار )

{
إذا (OrderSelect (المركز الوطني للاستشعار، SELECT_BY_POS))
OrderSelect (cnt، SELECT_BY_POS، MODE_TRADES)؛
إذا (OrderSymbol () == رمز ())
{
إذا (OrderType () == OP_BUY)



أيضا ، في حين أن انتباه الجميع هو رمز بلدي الصحيح لوضع أمر على أساس ارتفاعانخفاض السابق مع رمز (Ask == High [1] gt؛ 3 * Point)؟

مع الشكر!

عبد القادر جبر
11-24-2021 19:16, 07:16 PM
Hi Skeebo يوجد خطأ واضح مع تضمين عبارة If مع أقواس {}. على سبيل المثال ، قارن ذلك برمزك: if (totallt؛ 1) {bool buy = false؛ bool sell = false؛ } أتمنى أن يساعدك هذا