記事"マーケットでの公開前にトレードロボットに行うべき検査"についてのディスカッション - ページ 14

 

皆さん、こんにちは。

このエラーは何なのでしょうか?

EURUSD,H1ストラテジーテスターレポートが見つかりません。

というエラーです。他のレポートは?

 
Denis Bogdanov:

やあ、みんな。

この奇妙なエラーは何ですか?

EURUSD,H1ストラテジーテスターレポートが見つかりません。

そして、どのように戦うのですか?どんなレポートですか?

こんにちは、多分どこかに無限ループがあるので、テストはレポート生成の瞬間に到達しません。

 

今日、変なことがあったんだ。エラーで完了したと表示されるんだけど、それが何なのかはっきりしないんだ。空っぽだ。

 
Alexandr Gavrilin:

今日、変なことがあったんだ。エラーで完了したと表示されるんだけど、それが何なのかはっきりしないんだ。空っぽだ。

Autovalidatorのトリック、もう一度実行してください。
 
Alexandr Gavrilin:

今日、変なことがあったんだ。エラーで完了したと表示されるんだけど、それが何なのかはっきりしないんだ。空っぽだ。

直ったと思う。
 
Vladislav Andruschenko:
直ったと思う。

間違いなく修正されている。

 
買いは売値で行われる 売りは買値で行われる
テイクプロフィット -ビッド>= SYMBOL_TRADE_STOPS_LEVEL
ビッド- ストップロス >= SYMBOL_TRADE_STOPS_LEVEL
Ask- TakeProfit >= SYMBOL_TRADE_STOPS_LEVEL
StopLoss -Ask>= SYMBOL_TRADE_STOPS_LEVEL

記事にはそう書いてある。でも、そのやり方は間違っていませんか?

買いはAsk価格で発生 売りは買値で発生
TakeProfit -Ask>= SYMBOL_TRADE_STOPS_LEVEL
Bid- StopLoss >= SYMBOL_TRADE_STOPS_LEVEL

ビッド- テイクプロフィット >= SYMBOL_TRADE_STOPS_LEVEL
ストップロス -アスク>= SYMBOL_TRADE_STOPS_LEVEL

また、ファンクション・コードでは


// ...

switch(type)
     {
      //--- 購入取引
      case  ORDER_TYPE_BUY:
        {
         //--- ストップロスをチェックする
         SL_check=(Bid-SL>stops_level*_Point);
         if(!SL_check)
            PrintFormat("For order %s StopLoss=%.5f must be less than %.5f"+
                        " (ビッド=%.5f - SYMBOL_TRADE_STOPS_LEVEL=%d ポイント)",
                        EnumToString(type),SL,Bid-stops_level*_Point,Bid,stops_level);
         //--- テイクプロフィットをチェックする
         TP_check=(TP-Ask>stops_level*_Point);
         if(!TP_check)
            PrintFormat("For order %s TakeProfit=%.5f must be greater than %.5f"+
                        " (Bid=%.5f + SYMBOL_TRADE_STOPS_LEVEL=%d ポイント)",
                        EnumToString(type),TP,Bid+stops_level*_Point,Bid,stops_level);
         //--- 検査結果を返す
         return(SL_check&&TP_check);
        }
      //--- 売買取引
      case  ORDER_TYPE_SELL:
        {
         //--- ストップロスをチェックする
         SL_check=(SL-Ask>stops_level*_Point);
         if(!SL_check)
            PrintFormat("For order %s StopLoss=%.5f must be greater than %.5f "+
                        " (Ask=%.5f + SYMBOL_TRADE_STOPS_LEVEL=%d ポイント)",
                        EnumToString(type),SL,Ask+stops_level*_Point,Ask,stops_level);
         //--- テイクプロフィットをチェックする
         TP_check=(Bid-TP>stops_level*_Point);
         if(!TP_check)
            PrintFormat("For order %s TakeProfit=%.5f must be less than %.5f "+
                        " (Ask=%.5f - SYMBOL_TRADE_STOPS_LEVEL=%d ポイント)",
                        EnumToString(type),TP,Ask-stops_level*_Point,Ask,stops_level);
         //--- 検査結果を返す
         return(TP_check&&SL_check);
        }
      break;
     }

// ...

???

記事のようにすると、スプレッドの利益からポイントを失うだけです!多分、私は何かを理解していない?

 
Oleg Arsentev #:
買いは売値で行われる 売りは買値で行われる
テイクプロフィット -ビッド>= SYMBOL_TRADE_STOPS_LEVEL
ビッド- ストップロス >= SYMBOL_TRADE_STOPS_LEVEL
アスク- TakeProfit >= SYMBOL_TRADE_STOPS_LEVEL
ストップロス -アスク>= SYMBOL_TRADE_STOPS_LEVEL

記事にはそう書いてある。でも、そのやり方でいいのでは?

買いはAsk価格で発生 売りは買値で発生
TakeProfit -Ask>= SYMBOL_TRADE_STOPS_LEVEL
Bid- StopLoss >= SYMBOL_TRADE_STOPS_LEVEL

ビッド- テイクプロフィット >= SYMBOL_TRADE_STOPS_LEVEL
ストップロス -アスク>= SYMBOL_TRADE_STOPS_LEVEL

また、関数コードでは


???

私たちは記事のようにすれば、我々は利益のスプレッドからポイントを失うだけです!多分、私は何かを理解していない?

もちろん、利益は失う。しかし、ストップを近づけることは不可能です:

したがって、TakeProfitとStopLossのレベルは、反対方向の操作が可能な現在の価格と比較する必要があります:

  • 買いはアスク価格で行わ れます - TakeProfitとStopLossのレベルは、現在の売値と比較されるべきです。
  • 売りは買値で 行わ れる - TakeProfitとStopLossレベルは現在の売値と比較されるべきである。
削除済み  
 
dryun777 #:
市場に出回っているロボットの半分は機能していない。

これはEAを書く人のための記事です。テスト方法」シリーズの記事が必要です。