向鉴赏家提问 - 页 14

 
Спасибо большое!
 
rid писал(а)>>

下午好。我似乎无法掌握在EA中使用指标的问题。

这里是指标本身。



我在专家顾问中这样调用指标(来自2个缓冲区的值)----。

然而,尽管在视觉模式下,我可以看到两个缓冲区的指示器的值从零到正负五的变化,但海关持续显示(返回)零.....。

发布在评论中。- 绿线=5,但评论显示为零。

在过去的一个小时里,我一直在试图弄清楚。请给我一个提示,错误在哪里。

我下载了这个工具本身。

我已经发现了这个错误。我给Misha发了一个测试脚本。

事实上,所有的参数都必须被传递。绳子的也是。

附加的文件:
level_1.mq4  2 kb
 
谢谢你,Vinin !
 

下午好,请帮助有识之士在公式heiken ashi 上构思一个显示haOpen和haClose之间差异的震荡器。提前感谢!

 

大家好!

请指教。这里是代码。

// Проверка условий для совершения сделки селл 
  if( если условия соотв.- ют заданным){ //продаем
StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL);
   
      SL=0; TP=0;
      if( StopLoss>0    && StopLoss> StopLevel)   SL=Bid+Point* StopLoss;
      if( TakeProfit>0 && TakeProfit> StopLevel) TP=Bid-Point* TakeProfit;
      if( StopLoss  < StopLevel && StopLoss>0)   SL = Bid+Point* StopLevel; 
      if( TakeProfit< StopLevel && TakeProfit>0) TP = Bid-Point* StopLevel; 
   ticket=OrderSend(Symbol(),OP_SELL, lots,Bid,3, SL, TP,"Name_Expert", Magic,0, clOpenSell);

                                                   }

不知道哪里出了问题 !如果我设置的止损和止盈小于允许的范围,测试日志会返回错误130(错误的止损)!这就是为什么我在设置止损和止盈的时候会出现错误。

但我已经特别规定,这个错误没有发生 !

请告诉我们为什么这些条件不起作用?-


 if( StopLoss  < StopLevel &&   StopLoss>0)   SL = Bid+Point* StopLevel; 
 if( TakeProfit< StopLevel  && TakeProfit>0)   TP = Bid-Point* StopLevel; 
 
在StopLevel的基础上增加一个一拖二的通关方式如何?这对我来说曾经很有效。
 
许多初学者在比较浮点数时遇到了问题。Granit77 是正确的,我通常添加0.1个点,而不是1-2个点,以保持专家顾问的准确性。
 
granit77 >> :
在StopLevel上增加一个一字型的缺口如何?这对我来说曾经很有效。

像这样吗?:

 if( StopLoss  < StopLevel &&   StopLoss>0)   SL = Bid+Point*( StopLevel+1); 
 if( TakeProfit< StopLevel  && TakeProfit>0)   TP = Bid-Point*( StopLevel+1); 

>> 它不起作用。

此外,在测试器中,即使没有间隙,这些条件也应该起作用。但他们没有。- 错误130出现了

 
rid >> :

没有帮助。

此外,在测试器中,即使没有间隙,这些条件也应该起作用。但他们没有这样做。- 错误130显示为

不是专家,但会打印出StopLoss、TakeProfit、StopLevel、SL和TP等变量的值。

看不出它们是如何申报的,也不知道为什么需要它们。

 SL=0; TP=0
 
goldtrader >> :

不是专家,但会打印出StopLoss、TakeProfit、StopLevel、SL和TP等变量的值。

我看不出它们是如何被宣布的,又是为了什么?

这里是如何做到的。

extern int     StopLoss=1;
extern int     TakeProfit=1;
double SL, TP;
int StopLevel;

//---------------
StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL);

  if( УСЛОВИЯ ВХОДА ){ //продаем
   
      SL=0; TP=0;
      if( StopLoss>0    && StopLoss> StopLevel)   SL=Bid+Point* StopLoss;
      if( TakeProfit>0 && TakeProfit> StopLevel) TP=Bid-Point* TakeProfit;

      if( StopLoss  < StopLevel && StopLoss>0)   SL = Bid+Point* StopLevel; 
      if( TakeProfit< StopLevel && TakeProfit>0) TP = Bid-Point* StopLevel;
 
   ticket=OrderSend(Symbol(),OP_SELL, lots,Bid,3, SL, TP,"Name_Expert", Magic,0, clOpenSell);
   if( ticket < 0){
            Print("Ошибка открытия ордера SELL #", GetLastError()); 
            Sleep(10000);  
            prevtime = Time[1]; 
            return (0); 
         } 
       }

仓位被打开,但没有止损,而是出现了一个错误130 .....

在评论中显示了所有的停止和水平。 - 似乎都能正确显示...- 但出现了错误130