どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 340

 
evilliveです。


編集パネルにSRCボタンがあり、コードは自動的にそこに色づけされます ;)

コードとしては、if (OrderSymbol() == Symbol()...) then if (OrderSymbol()!= Symbol()) continue; が使われていれば、どちらかは必要ないのです。

for (int k = 0; k < OrdersTotal(); k++) これを次のように置き換えた方がよいでしょう。

for (int k = OrdersTotal()-1; k >=0 ; k--)とすると、より安全です。



このように書きました。


if(NumberOfPositionsSell(Symbol())==1 &&  NumberOfPositionsBay_otl(Symbol())==1  &&GetOrderLotsOtlBay(Symbol())==start_Lot*2  &&GetOrderLotsSell(Symbol())==start_Lot)
{
 
     for (int kk = OrdersTotal()-1; kk >=0 ; kk--) 
      {
      
       if (OrderSelect(kk,SELECT_BY_POS)==true) // Если есть следующий
{ // Анализ ордеров:
      
      if (OrderSymbol() == Symbol() && OrderType() == OP_BUYSTOP ) {
      

      tp_buy_otl=NormalizeDouble(b+((((2*Point)+spred+(b+Point+spred-GetOrderPriceSell(Symbol()))/Point)/2)*Point), Digits);
      sl_buy_otl=NormalizeDouble(GetOrderPriceSell(Symbol()), Digits);
      OrderModify(OrderTicket(), NormalizeDouble(b+Point+spred, Digits),sl_buy_otl,tp_buy_otl,0);
     
       Alert("tp_buy_otl = ",DoubleToStr(tp_buy_otl, Digits)+"\n"+"sl_buy_otl =  ",DoubleToStr(sl_buy_otl, Digits)+"\n"+" цена открытия бай стоп = ",  DoubleToStr(b+Point+spred, Digits)+"\n"+"OrderSymbol() =  ",OrderSymbol()+"\n"+"OrderType() = ",OrderType());
     
      
     }
      
      
      if (OrderSymbol() == Symbol() && OrderType() == OP_SELL ) {
      
      sl_sell_otl=NormalizeDouble(b+spred+Point, Digits);
      OrderModify(OrderTicket(),OrderOpenPrice(), sl_sell_otl,OrderTakeProfit(),0);
       
      }
      }
      }
      
} 

а в алерте почемуто OrderSymbol()==GBPUSD посмотрите на скин
да и открытый селл он модифицировал а отложенный нет


gbpusdの保留中の注文を削除し、そこからEAを削除した途端、ユーロの注文がすぐに修正された


 
max020780:

gbpusdの保留中の注文を削除し、そこからEAを削除した途端、ユーロの注文がすぐに修正されました。

Magickyを 使用して注文をフィルタリングします。また、ストップの繰り返し修正(Modify Error 1の原因となる)のチェックもありません。
 

皆さん、こんにちは。皆さん、この5年越しのEAテストは 成功したと言えるのでしょうか?それとも、収益性が小さく、ドローダウンが大きいのでしょうか。私の意見を聞きたいのですが、テスターのデータと実際の口座(アルパリのターミナルでテストしました)とはかなり違うのでしょうか?結果を示しています。

期間 収益性 ドローダウン トランザクション量
01.06.2012-30.05.2013 1490.63 1.7 37.08% (389.71)
213
01.06.2011-30.05.2012
1242.23 1.48 25.82% (448.34) 231
01.06.2010-30.05.2011 1677.66 1.62 53.26% (880.57)
213
01.06.2009-30.05.2010 1664.33 1.68 32.16% (560.68) 208
01.06.2008-30.05.2009 1817.72 1.48 43.73% (472.15) 233
 
alexey1979621:

皆さん、こんにちは。皆さん、この5年越しのEAテストは成功したと言えるのでしょうか?それとも、収益性が小さく、ドローダウンが大きいのでしょうか。私の意見を聞きたいのですが、テスターのデータと実際の口座(アルパリのターミナルでテストしました)とはかなり違うのでしょうか? 結果を示しています。

期間 収益性 ドローダウン トランザクション量
01.06.2012-30.05.2013 1490.63 1.7 37.08% (389.71)
213
01.06.2011-30.05.2012
1242.23 1.48 25.82% (448.34) 231
01.06.2010-30.05.2011 1677.66 1.62 53.26% (880.57)
213
01.06.2009-30.05.2010 1664.33 1.68 32.16% (560.68) 208
01.06.2008-30.05.2009 1817.72 1.48 43.73% (472.15) 233

これではドローダウンが大きく、採算が合わないのでは...。ファンドのドローダウンはどのくらいですか?

あるいは、そうかもしれません。

Abs.ドローダウン: 2.40 USD
最大値:9.08米ドル

相対値:0.78%)

Max Money: 97.81% ))

 
evillive:

ドローダウンが大きく、収益性も少し低いのですが...。ファンドのドローダウンはどのくらいですか?

そうかもしれませんね。

Abs.ドローダウン:2.40米ドル。
最大値:9.08米ドル

相対値:0.78

ファンドの最大数97.81% ))

相対的なドローダウンを示す。絶対的なドローダウンは、パーセンテージと金額でほぼ同じです。テスターのデータは、実際のアカウントと 大きく異なるのでしょうか?エキスパート アドバイザーを実際の口座に導入するか(デモ口座では3週間問題なく動作しています)、それとも新しいアイデアが出るまで棚にしまっておくか、どうしたらよいでしょうか。
 
最低でも半年はデモに取り組ませる。テスターではドローダウンがどうしても表示されないが、リアルタイムで見ることができる。私が示したもの - ストップ、過度のドローダウンなしで動作します。以前のアカウントの寿命は 2〜3ヶ月、このアカウントは8月から生きているので、いつまで続くか見てみます )))
 
経験者の方は、最低収益率やドローダウンなど、どのようなパラメータから始めればよいでしょうか。もし、収益性が1.5%未満で、ドローダウンが5年間で50%以上であれば、私のExpert Advisorは良い時代が来るまで棚上げにすべきです。
 
Forexman77:

EAで独自のインジケーターを使用していますが、テスト中に視覚的に成長しているのがわかり、条件に従って買いを開くはずなのですが、それが起きないのです。

ログには以下のようなエラーが表示されます(2種類あるので、1つずつ表示しています)。

TestGenerator: データが一致しないエラー (2013.12.11 21:00 のボリューム制限 372 を超過)

TestGenerator: unmatched data error (low value 1.33097 at 2013.09.12 19:45 is not reached from lowest timeframe, low price 1.33105 mismatches.).

カスタムインジケーターの動作にクセがあるのでは?このEAを2ヶ月間いじくりまわして、無期限延期しています。

テストするシンボルの全履歴をダウンロードします。エラーが発生しているのはEAではなく、「曲がった」履歴の方です。
 
Forexman77:

エラー129,138は、1つのEAで時々発生します。端末を再起動しないと解決しない。

Market Info機能を追加して、bidとaskを更新して確認したい。

エラー129,138を人為的に呼び出すことは可能か?

エラー129 - 価格が違います

エラー 138 - 新しい価格 (再引用)

取引要求を送信 する前に、RefreshRates()を使用して取引環境を更新するか、MarketInfo()から直接、最新の価格を取得します。

それを忘れてはいけない。

Expert Advisorとスクリプトは、履歴データの独自のコピーで動作します。エキスパートアドバイザーやスクリプトの初回起動時に、現在のシンボルのデータのコピーが作成されます。

Expert Advisor またはスクリプトを次に実行するたびに、最初に作成されたコピーが更新されます。Expert Advisor やスクリプトの実行中に、1つ以上の新しいティックが到着することがあり、データが古くなることがあります。

 
artmedia70:

エラー129 - 価格が正しくありません

エラー 138 - 新しい価格 (再引用)

取引要求を送信する前に、RefreshRates()を使用して取引環境を更新するか、MarketInfo()から直接、最新の価格を取得します。

それを忘れてはいけない。

Expert Advisors とスクリプトは、履歴データの独自のコピーで動作します。エキスパートアドバイザーやスクリプトの初回起動時に、現在のシンボルのデータのコピーが作成されます。

Expert Advisor またはスクリプトを次に実行するたびに、最初に作成されたコピーが更新されます。Expert Advisor やスクリプトの実行中に、1つ以上の新しいティックが到着することがあり、データが古くなることがあります。


ありがとうございました。

何が問題なのかがわかった。

買うときに使いました。

if  (iClose(Symbol(),Period(),0) <= MA_6_t) 
          {                                          
          Opn_B=true;                    
          }

私の知る限り、買いはaskですが、iClose(Symbol(),Period(),0)はbidから価格を取得します。これがエラーの原因になっている可能性があります。

今は次のような組み合わせで使っています。

double pa=MarketInfo(Symbol(),MODE_ASK);
if  (pa <= MA_6_t) 
          {                                          
          Opn_B=true;                    
          }
しかし、そこで疑問が生じます。このEAはPipsではないので、価格がずっと買いゾーンにあり、ティックごとに更新されていました。

なぜトレードが始まらないのか?EAがエラーでハングアップして、それ以上の値動きを見ないことが判明?

Expert Advisor のテンプレートはhttps://c.mql5.com/mql4/book/mq4/experts/tradingexpert.mq4 から取得しました。

ご意見として、このEAのエラー処理機能に129と138のエラーのチェックを追加したほうがいいでしょうか?

その場合、どのようにすればよいのでしょうか?