谁能帮助解决机器人的问题,为什么它不工作了? - 页 2

 
Alexey Volchanskiy:

语言规则不允许吞噬有默认值的参数。如果你必须设置箭头的颜色,请将所有参数写在颜色的左边。B的滑点3是不够的,如果是5位数,会有重新报价,我写了50。而且SL和TP不应该设置为零,Aleksey Vakhrushev 已经写过这个问题。


这是一个错误。

应检查'OrderSend'的返回值
 
GIM:

错误。

应检查'OrderSend'的返回值
这只是一个警告。该文件将被编译。
 

下午好,请帮助。EA只开放销售。


外来的双倍Lots=0.1。
外部int FastMAPeriod=14;
Extern int FastMAMethod=0; // 0-SMA, 1-EMA, 2-SMMA, 4-LWMA
外部int FastMAPrice=0; // 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted
外置 int SlowMAPeriod=42;
外部intn SlowMAMethod=0; // 0-SMA, 1-EMA, 2-SMMA, 4-LWMA
外部int SlowMAPrice=0; // 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted
外置 int TP=0; //takeprofit
extern int SL=0; //停止损失

int BuyTicket,SellTicket;



int start(){

double fast_ma1=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,1)。
double slow_ma1=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod, SlowMAPrice,1)。
double fast_ma2=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,2)。
double slow_ma2=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod, SlowMAPrice,2)。


如果(fast_ma1>slow_ma1 &&(fast_ma2>slow_ma2)){
if(SellTicket!=0){ //如果SellTicket不是0,则为真。

SellTicket=0。
}
if(BuyTicket==0){ //// 如果BuyTicket为0,则为真。
BuyTicket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL=Ask-SL*Point, Ask+TP*Point,NULL,0,0,CLR_NONE);
}
}
如果(fast_ma1<slow_ma1 &&(fast_ma2<slow_ma2)){
if(BuyTicket!=0){ //true if BuyTicket is not 0 ;
BuyTicket=0。
}
如果(SellTicket==0){ //True if(SellTicket equals 0)
SellTicket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid-SL*Point,Bid+TP*Point,NULL,0,0,CLR_NONE) 。
}
}

return(0);
}

 
Alexey Kozitsyn:
这只是一个警告。该文件将被编译。
嗯,它仍然没有打开交易.....。
 
GIM:
仍然没有打开交易.....
好吧,我想情况不是这样的...尽管可能值得看看日志,看看上面写了些什么......。嗯,这只是一种选择。
 
Alexey Kozitsyn:
好吧,我想这不是故意的......。虽然它可能值得在杂志上看一下,看看它是怎么说的......好吧,这也是一种选择。
谢谢你!(笑)。我将继续努力))。
 
AdikAmir:

下午好,请帮助。 顾问只开卖。


外来的双倍Lots=0.1。
外部intMAPeriod=14。
Extern int FastMAMethod=0; // 0-SMA, 1-EMA, 2-SMMA, 4-LWMA
外部int FastMAPrice=0; // 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted
外置 int SlowMAPeriod=42;
外部intn SlowMAMethod=0; // 0-SMA, 1-EMA, 2-SMMA, 4-LWMA
外部int SlowMAPrice=0; // 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted
外置 int TP=0; //takeprofit
extern int SL=0; //停止损失

int BuyTicket,SellTicket;



int start(){

double fast_ma1=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,1)。
double slow_ma1=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod, SlowMAPrice,1)。
double fast_ma2=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,2)。
double slow_ma2=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod, SlowMAPrice,2)。


如果(fast_ma1>slow_ma1 &&(fast_ma2>slow_ma2)){
if(SellTicket!=0){ //如果SellTicket不是0,则为真。

SellTicket=0。
}
if(BuyTicket==0){ //// 如果BuyTicket为0,则为真。
BuyTicket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL=Ask-SL*Point, Ask+TP*Point,NULL,0,0,CLR_NONE);
}
}
如果(fast_ma1<slow_ma1 &&(fast_ma2<slow_ma2)){
if(BuyTicket!=0){ //true if BuyTicket is not 0 ;
BuyTicket=0。
}
如果(SellTicket==0){ //True if(SellTicket equals 0)
SellTicket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid-SL*Point,Bid+TP*Point,NULL,0,0,CLR_NONE) 。
}
}

return(0);
}

这是一个奇怪的代码,我以前没有见过。

买入票和卖出票的变量在每次新的tick到来时都会等于零或无法理解,因为它们没有被初始化。

如果(fast_ma1>slow_ma1 && !(fast_ma2>slow_ma2))这个结构在翻译成人类语言时完全不清楚,这个条件看起来是这样的

如果fast_ma1大于slow_ma1,并且not fast_ma2大于slow_ma2。!"运算符是这样表示否定的:如果(fast_ma1>slow_ma1 && (fast_ma2<slow_ma2))

当fast_ma1>slow_ma1=true(真),fast_ma2>slow_ma2=false(假)时,该条件成立。

....
if (OrdersTotal()==0)
{
  if (условие на покупку)
  {
    ticet = OrderSend(Symbol(),OP_BUY,.....);
    if (ticet==0) Print("ERROR");
  }
  if (условие на продажу)
  {
    ticet = OrderSend(Symbol(),OP_SELL,.....);    
    if (ticet==0) Print("ERROR");
  }

}
//Простейший код для примера.
 
Vitalii Ananev:

这是一个奇怪的代码,我以前没有见过。

买入票和卖出票的变量在每次新的tick到来时都会等于零或无法理解,因为它们没有被初始化。

如果(fast_ma1>slow_ma1 && !(fast_ma2>slow_ma2))这个结构在翻译成人类语言时完全不清楚,这个条件看起来是这样的

如果fast_ma1大于slow_ma1,并且not fast_ma2大于slow_ma2。!"运算符是这样表示否定的:如果(fast_ma1>slow_ma1 && (fast_ma2<slow_ma2))

当fast_ma1>slow_ma1=true(真),fast_ma2>slow_ma2=false(假)时,你的条件成立。

我输入了你的代码,但卖出的位置没有打开,只有买入。
 
AdikAmir:
我把你的代码仍然没有打开卖出头寸,只是买入。

外来的双倍Lots=0.1。
外来的双倍FastMAPeriod=5。
Extern int FastMAMethod=0; // 0-SMA, 1-EMA, 2-SMMA, 4-LWMA
外部int FastMAPrice=0; // 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted
外置 int SlowMAPeriod=75;
外部intn SlowMAMethod=3; // 0-SMA, 1-EMA, 2-SMMA, 4-LWMA
外部int SlowMAPrice=3; // 0-Close, 1-Open, 2-High, 3-Low, 4-Median, 5-Typical, 6-Weighted
外置 int TP=500; //takeprofit
extern int SL=250; //stop loss
双重提法。

int start(){

double fast_ma1=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,1)。
double slow_ma1=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod, SlowMAPrice,1)。
double fast_ma2=iMA(NULL,0,FastMAPeriod,0,FastMAMethod,FastMAPrice,2)。
double slow_ma2=iMA(NULL,0,SlowMAPeriod,0,SlowMAMethod, SlowMAPrice,2)。

如果(OrdersTotal()==0)
{
如果(fast_ma1>slow_ma1 && (fast_ma2<slow_ma2))
{ ticet = OrderSend(Symbol(,OP_BUY,0.1,Ask,3,Ask-SL*Point,Ask+TP*Point,NULL,0,0,CLR_NONE);
如果(ticet==0)Print("ERROR")。
}
如果(slow_ma1>fast_ma1 && (slow_ma2<fast_ma2))
{
ticet = OrderSend(Symbol(,OP_SELL,Lots,Bid,3,Bid-SL*Point,Bid+TP*Point,NULL,0,0,CLR_NONE)。
如果(ticet==0)Print("ERROR")。
}

}

return(0);
}




 
在计算SL /TP时,我们需要改变符号
ticet = OrderSend(Symbol(,OP_SELL,Lots,Bid,3,Bid+SL*Point,Bid-TP*Point,NULL,0,0,CLR_NONE)。