PDA

View Full Version : 需要帮助清理我的第一个EA



Ignatiopalachua
08-25-2015 16:50, 04:50 PM
嗨,大家好。我在最近几周工作(搜索论坛)并设法将一个不再编译错误的EA拉到一起,但它的结构都是错误的,因为它没有在适当的时间执行。我希望有些善良的人可以看看并帮助我重构我的EA,并可能对这些变化做出一些解释。在此先感谢您的帮助,我将在学习时将其传递给我。

以下是我想用EA做的事情:

我有这些外部输入:
大量= 0.03;
Target_In_Dollars = 5;这是我在所有开盘订单(最多3个)上拍摄的目标,告诉追踪止损
Trailing_Stop = 50;
MAX_ORDERS = 3;
Closed_Bars = 0;
Distance_Back = 24;
ADX = 75;如果8period ADX高于75,交易将不会开启
extern int Magic = 717171;
这是应该发生的事情....当一个柱子关闭时,EA检查24个柱子以查找信号,如果它是一个go(信号满足并且ADX <75并且不超过每个最大订单)它打开订单以买入价计算的.03手数(订单时没有SL或TP)。当该图表上所有未结订单的总价格具有相同的幻数(717171)总计5美元或更高时,它应该修改该图表上的所有未结订单,并带有该止损点的幻数。

虽然没有错误,但EA的功能并不像解释的那样。我确定它是基于结构和括号等...

提前感谢任何花时间握住这一次的人。这是代码:
插入的代码// --------------------------------------------- --------------------- /| DoppkeEA.mq4 |/ ----------------------------------------------- ------------------- extern double Lots = 0.03; extern double Target_In_Dollars = 5; extern int Trailing_Stop = 50; extern int Max_Orders = 3; extern int Closed_Bars = 0; extern int Distance_Back = 24; extern int ADX = 75; extern int Magic = 9348670; int start(){int EAOrdersTotal = 0; int mTotal = OrdersTotal(); for(int i = mTotal-1; igt; = 0; i--){OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if(OrderMagicNumber()== Magic OrderSymbol()== Symbol())EAOrdersTotal ; } if(OrderProfit()gt; = Target_In_Dollars){{OrderSelect(i,SELECT_BY_POS,MODE_TRADES); RefreshRates(); if(OrderType()== OP_BUY OP_SELL OrderMagicNumber()== Magic OrderSymbol()== Symbol())if(OrderStopLoss()== 0)OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Point * Trailing_Stop) ,位),OrderTakeProfit(),0,蓝色);/OrderClose(OrderTicket(),OrderLots(),投标,3,蓝色); double sig =最低(NULL,0,MODE_LOW,Distance_Back,0); if(EAOrdersTotal lt; Max_Orders)if(iADX(NULL,0,8,PRICE_CLOSE,MODE_MAIN,0)lt; ADX)if(Closed_Bars!= Bars sig == 1){RefreshRates(); OrderSend(符号(),OP_BUY,地段,问,3,0,0,DoppkeEA,魔术,0,蓝); string AN = ArrBuy TimeToStr(CurTime()); ObjectCreate(AN,OBJ_ARROW,0,时间#91; 1#93;低#91; 1#93; -6 *点,0,0,0,0); ObjectSet(AN,OBJPROP_ARROWCODE,233); ObjectSet(AN,OBJPROP_COLOR,Blue); } sig =最高(NULL,0,MODE_HIGH,Distance_Back,0); if(EAOrdersTotal lt; Max_Orders)if(iADX(NULL,0,8,PRICE_CLOSE,MODE_MAIN,0)lt; ADX)if(Closed_Bars!= Bars sig == 1){RefreshRates(); OrderSend(符号(),OP_SELL,批次,投标,3,0,0,DoppkeEA,魔术,0,品红); AN = ArrSell TimeToStr(CurTime()); ObjectCreate(AN,OBJ_ARROW,0,时间#91; 1#93;,高#91; 1#93 6 *点,0,0,0,0); ObjectSet(AN,OBJPROP_ARROWCODE,234); ObjectSet(AN,OBJPROP_COLOR,Magenta); } Closed_Bars = Bars;返回(0); }