externint TakeProfit=18;
externint StopLoss=18;
externdouble Lot=0.01;
externint StartTime=0;
int Today=0;
int h=10;
int h1=26;
int mag=777;
bool b=0,s=0, //соответственно бай или селл
bs=0,// если закрытие по стоплоссу ордера бай
ss=0,// если закрытие по стоплоссу ордера sell
bt=0,
st=0;// то же по ТПdouble bl=0,sl=0; // лоты соответсвенно для бай и селл//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start()
{
if(DayOfWeek()==0 || DayOfWeek()==6) return(0); // в выходные не работаемif(!IsTradeAllowed()) return(0); // пропустим тик если терминал занятint total = OrdersTotal();
if(total == 0)
{NewOrder(OP_BUY,Lot);
NewOrder(OP_SELL,Lot);
NewOrder(OP_BUYLIMIT,Lot);
NewOrder(OP_SELLLIMIT,Lot);
NewOrder(OP_BUYSTOP,Lot);
NewOrder(OP_SELLSTOP,Lot);
Today=TimeDay(TimeCurrent());}
{
for(int cnt=OrdersHistoryTotal();cnt>0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY);
{if(OrderMagicNumber()== mag &&
OrderSymbol()==Symbol())
{ if (OrderType() == OP_BUY ) {b=1; if (OrderClosePrice()==OrderTakeProfit()) bt=1;
if (OrderClosePrice()==OrderStopLoss()) bs=1; bl=OrderLots()*100; break;}
if (OrderType() == OP_SELL) {s=1; if (OrderClosePrice()==OrderTakeProfit()) st=1;
if (OrderClosePrice()==OrderStopLoss()) ss=1; sl=OrderLots()*100; break;}
}
}
}
}//endif(bs==1||bl==1)
{
NewOrder1(OP_BUYLIMIT,Lot);
Today=TimeDay(TimeCurrent());}
而这里是订单的开端
int NewOrder1(int Cmd,double Lot)
{double TP=0; //тейкпрофитdouble SL=0; //стоплоссdouble PR=0; //Ценаdouble LT=0; //Лотwhile(!IsTradeAllowed()) Sleep(100);
if(Cmd==OP_BUYLIMIT)
{PR=Ask-Point*h;
if(TakeProfit>0) TP=PR+TakeProfit*Point;
if(StopLoss>0) SL=PR-StopLoss*Point;
if(Lot>0) LT=3*Lot;}
int tic1=OrderSend(Symbol(),Cmd,LT,PR,3,SL,TP,0,mag,0,CLR_NONE);
//-----------if(tic1<0) Print(GetLastError());
if(tic1>0){
b=0;s=0; //соответственно бай или селл
bs=0;// если закрытие по стоплоссу ордера бай
ss=0;// если закрытие по стоплоссу ордера sell
bt=0;
st=0;// то же по ТП
bl=0;sl=0; // лоты соответсвенно для бай и селл
}
//-----------return(tic1);}
仍在批量打开这个订单。
我是这样在我的Ekspert中设置变量的
而这里是订单的开端
你能不能给我一个函数的代码,让我在盈亏平衡的水平上设置一个止损,比如说,当利润为20点的时候。
提前感谢您的答复:)
鲍里斯,嗯,比这还简单。你放下这句话。
在代码的最顶端(要分开,不在任何函数中)。
然后在那些有调用OrderSend(...)函数的地方,只要把它放在一个额外的if运算符的拥抱中就可以了。
现在,在打开下一个订单之前,操作员将检查当前酒吧是否有交易或没有交易。如果是这样,那么当前的条形图已经存储在变量new中,如果当前的条形图与存储的条形图重合,那么将不开仓。相应地,如果酒吧是新的,那么它的开盘时间将与变量new的数据不一致,交易将被打开,变量new 将得到一个新的值。
我不知道你的EA的具体架构,但这种方法在大多数情况下应该是有效的。
非常感谢您!它非常合适!
我想不出有什么更好的办法来进行。
有一个带有一堆数组的指标。第二个指标需要与这些数组一起工作。 要计算并将结果输出到它自己的表格。
最简单的方法是调用这个指标,但似乎这是不可能的。
如何进入其他数组?
我不知道。
你好,请你告诉我如何在MT4中查看日志?
你不需要发布15条只有一个内容的信息。如果你这样做,最好是自己打扫卫生。不要等待叔叔们的到来。
你必须真的需要...:) 或者鼠标被卡住了...
不是鼠标卡住了。这就是不耐烦。最后我花了20分钟才删除了15个帖子。
不是鼠标卡住了。
仍在批量打开这个订单。
我是这样在我的Ekspert中设置变量的
而这里是订单的开端
不是鼠标卡住了。这就是不耐烦。最后我花了20分钟才删除了15个帖子。