目利きの方に質問です - ページ 14

 
rid писал(а)>>

こんにちは。EAでのインジケーターの使い方がいまいちつかめない。

ここでは、インジケーターそのものを紹介します。



Expert Advisorでこのようなインジケータを呼び出しています(2つのバッファから値を取得)-。

しかし、ビジュアルモードでは、両方のバッファからのインジケータの値がゼロからプラス/マイナス5まで変化することがわかりますが、税関ではゼロをしつこく表示(戻す)しています・・・・・。

カテゴリー:コメント- 緑の線は=5ですが、コメントには0と表示されています。

この1時間、それを理解しようとしているのです。どこがエラーなのかヒントをください。

ツールそのものをダウンロードしました。

エラーが見つかりました。ミーシャにテストスクリプトを送りました。

実際には、すべてのパラメータを渡す必要があります。ひも状のものも。

ファイル:
level_1.mq4  2 kb
 
Vininさん、ありがとうございました。
 

こんにちは、haOpenとhaCloseの間の違いを示す式heiken ashiで オシレータを練るために知識のある人を助けてください。ありがとうございました。

 

皆さん、こんにちは。

以下はそのコードです。

// Проверка условий для совершения сделки селл 
  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);

                                                   }

どこが悪いのかわからない!?テスターログでは、stoplossとtakeprofitを許容値より少なく設定すると、エラー130(間違ったストップ)が返されます。

しかし、私はこのエラーが発生しないことを具体的に提供しました !

なぜうまくいかないのか、教えてください。-


 if( StopLoss  < StopLevel &&   StopLoss>0)   SL = Bid+Point* StopLevel; 
 if( TakeProfit< StopLevel  && TakeProfit>0)   TP = Bid-Point* StopLevel; 
 
StopLevelにワンツーを追加してクリアするのはどうでしょうか。一度は効果があったんです。
 
初心者の中には、浮動小数点数の比較で悩む人が多い。Granit77の 言う通り、Expert Advisorの精度を保つために、1-2pipsではなく0.1pipsを追加することが多い。
 
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が出ます

 
rid >> :

その方法を紹介します。

つまり、StopLoss == TakeProfitとなっており、比較条件にそのようなオプションがないのです((