なぜ私のEAはバックテスト時にマイナスの利益を出し続けるのでしょうか? - ページ 2 12345 新しいコメント 削除済み 2013.01.31 15:52 #11 deVries:あなたのコードを書き換えて、テストしてみました。最高のバックテスト・データではありませんが、正しく実行すれば、利益を上げることができます。ストラテジーテスターレポートRSI_ストラテジー_CYXSTUDIOAlpariUK-Demo - Micro+Classic (Build 451)シンボルEURUSD (ユーロ vs 米ドル)期間日足(D1) 2010.10.01 00:00 ~ 2013.01.29 00:00 (2010.10.01 ~ 2013.01.30)モデル毎ティック(利用可能なすべての最小時間枠に基づく最も正確な方法)パラメータRSIPeriod=3; UpperBound=90; LowerBound=5; MASlowPeriod=200; MAFastPeriod=5; Lots=0.1; StopLoss=60; TakeProfit=120; TrailingStop=40; MagicNumber=54333; CommentEA="RSI strategies"; Slippage.Pips=3.1;テスト中のバー1603モデル化されたティック数40187739モデリング品質n/aグラフの不一致エラー2062601初期預金3000.00純利益の合計967.18売上総利益2226.34総損失-1259.16利益率1.77期待ペイオフ13.62絶対的ドローダウン107.10最大ドローダウン327.47 (7.99%)相対ドローダウン7.99% (327.47)総トレード数71ショートポジション (勝率)66 (69.70%)ロングポジション (ウォン)5 (80.00%)利益取引 (%)50 (70.42%)損失トレード (% of total)21 (29.58%)最大の利益取引120.07損失トレード-60.00平均値利益トレード44.53損切り取引-59.96最大連勝(儲け)8 (424.26)連続損失(資金での損失)3 (-179.93)最大連続利益(勝利数)424.26 (8)連続損失-179.93 (3)平均値連勝4連敗2 少なくとも7-10回はいろいろな方法で書きましたが、全く約定しないか、利益がマイナスになりました。 Tjipke de Vries 2013.01.31 15:56 #12 RaptorUK: そうすると、何かおかしいと思うんです。 if (BUYS<1 && CurrentRSI < LowerBound && pAsk > MA200) { //Condition to execute buy entry Ticket = OrderSend(Symbol(), OP_BUY,...... // LowerBound=5 if (SELLS<1 && CurrentRSI > UpperBound && pBid > MA200) { //Condition to execute sell entry Ticket = OrderSend(Symbol(), OP_SELL, Lots,...... // UpperBound=90 通常は「はい」ですが、今回は「いいえ」で、cyxstudioがRSI用に選択した 設定で行われています。 削除済み 2013.01.31 15:57 #13 deVries:あなたのコードを書き換えて、テストしてみました。最高のバックテスト・データではありませんが、正しく実行すれば、利益を上げることができます。ストラテジーテスターレポートRSI_ストラテジー_CYXSTUDIOAlpariUK-Demo - Micro+Classic (Build 451)シンボルEURUSD (ユーロ vs 米ドル)期間日足(D1) 2010.10.01 00:00 ~ 2013.01.29 00:00 (2010.10.01 ~ 2013.01.30)モデル毎ティック(利用可能なすべての最小時間枠に基づく最も正確な方法)パラメータRSIPeriod=3; UpperBound=90; LowerBound=5; MASlowPeriod=200; MAFastPeriod=5; Lots=0.1; StopLoss=60; TakeProfit=120; TrailingStop=40; MagicNumber=54333; CommentEA="RSI strategies"; Slippage.Pips=3.1;テスト中のバー1603モデル化されたティック数40187739モデリング品質n/aグラフの不一致エラー2062601初期預金3000.00純利益の合計967.18売上総利益2226.34総損失-1259.16利益率1.77期待ペイオフ13.62絶対的ドローダウン107.10最大ドローダウン327.47 (7.99%)相対ドローダウン7.99% (327.47)総トレード数71ショートポジション (勝率)66 (69.70%)ロングポジション (ウォン)5 (80.00%)利益取引 (%)50 (70.42%)損失トレード (% of total)21 (29.58%)最大の利益取引120.07損失トレード-60.00平均値利益トレード44.53損切り取引-59.96最大連勝(儲け)8 (424.26)連続損失(資金での損失)3 (-179.93)最大連続利益(勝利数)424.26 (8)連続損失-179.93 (3)平均値連勝4連敗2 あなたのコードを拝見させていただけませんか? Simon Gniadkowski 2013.01.31 16:06 #14 deVries: 通常は「はい」ですが、今回は「いいえ」で、cyxstudioがRSI用に選択した 設定で行われます。 あ、そうか、説明できるのなら心配はないですね;-) Tjipke de Vries 2013.01.31 16:09 #15 上値90、下値10で。ストラテジーテスターレポートRSI_ストラテジー_CYXSTUDIOAlpariUK-Demo - Micro+Classic (Build 451)シンボルEURUSD (ユーロ vs 米ドル)期間日足(D1) 2010.10.01 00:00 ~ 2013.01.29 00:00 (2010.10.01 ~ 2013.01.30)モデル毎ティック(利用可能なすべての最小時間枠に基づく最も正確な方法)パラメータRSIPeriod=3; UpperBound=90; LowerBound=10; MASlowPeriod=200; MAFastPeriod=5; Lots=0.1; StopLoss=60; TakeProfit=120; TrailingStop=40; MagicNumber=54333; CommentEA="RSI strategies"; Slippage.Pips=3.1;テスト中のバー1603モデル化されたティック数40187739モデリング品質n/aグラフの不一致エラー2062601初期預金3000.00純利益の合計782.62売上総利益3062.38総損失-2279.76利益率1.34期待ペイオフ7.38絶対的ドローダウン106.90最大ドローダウン400.70 (9.90%)相対ドローダウン9.90% (400.70)総トレード数106ショートポジション (勝率)66 (69.70%)ロングポジション (ウォン)40 (55.00%)利益取引 (%)68 (64.15%)損失トレード (全体に占める割合)38 (35.85%)最大の利益取引120.07損失トレード-60.12平均値利益取引45.04損切り取引-59.99最大連勝(儲け)8 (425.96)連続損失(資金での損失)4 (-240.12)最大連続利益(勝利数)490.51 (6)連続損失-240.12 (4)平均値連勝3連敗2どのように見えるか Why does my EA 新しいビルド604でのテスターは正しく動作しません。 EAのご提案(負けから利益へ) Tjipke de Vries 2013.01.31 16:25 #16 cyxstudio: 私はそれを勉強し、私の間違いから学ぶ必要があります。これが始まりです......。あなたのコメントをどうぞ......今までのあなたと何が違うのか......。//+------------------------------------------------------------------+ //| RSI_strategy_cyxstudio.mq4 | //| Copyright 2013, Tjipke de Vries | //| https://forum.mql4.com/53695/ | //+------------------------------------------------------------------+ #property copyright "Copyright 2013, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" extern int RSIPeriod = 3; //number of periods for RSI extern double UpperBound = 90; //set upper bound value for RSI extern double LowerBound = 5; //set lower bound value for RSI extern int MASlowPeriod = 200; extern int MAFastPeriod = 5; extern double Lots = 0.1; extern double StopLoss = 60; //Set the stop loss level extern double TakeProfit = 120; //Set the take profit level extern double TrailingStop = 40; //extra settings for OrderSend extern int MagicNumber = 54333; extern string CommentEA = "RSI strategy"; extern int Slippage.Pips = 3; int BUYS=1,SELLS=1; //++++ These are adjusted for 5 digit brokers. int pips2points; // slippage 3 pips 3=points 30=points double pips2dbl; // Stoploss 15 pips 0.015 0.0150 int Digits.pips; // DoubleToStr(dbl/pips2dbl, Digits.pips) //--- //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- if(Digits % 2 == 1) // DE30=1/JPY=3/EURUSD=5 forum.mql4.com/43064#515262 {pips2dbl = Point*10; pips2points = 10; Digits.pips = 1;} else {pips2dbl = Point; pips2points = 1; Digits.pips = 0;} // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- int Ticket; double SL,TP; int Total; double pAsk = MarketInfo(Symbol(), MODE_ASK); double pBid = MarketInfo(Symbol(), MODE_BID); double MA200 = iMA(NULL, 1440, MASlowPeriod, 0,MODE_SMA,PRICE_CLOSE, 0); //200 day Moving Average double MA5 = iMA(NULL, 1440, MAFastPeriod, 0,MODE_SMA,PRICE_CLOSE, 0); // 5 day Moving Average double CurrentRSI = iRSI (NULL, 1440, RSIPeriod,PRICE_CLOSE ,0); if(Bars<100) { Print("bars less than 100"); return(0); } if(AccountFreeMargin()<(1000*Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } if(OrdersTotal()<1) { BUYS=0; SELLS=0; } それから、https://www.mql5.com/en/forum/139654 を読んで、トレードをチェックするカウントダウンのループを作ってみてください。 削除済み 2013.01.31 16:36 #17 deVries:これが始まりです......。あなたのコメントをどうぞ......今までのあなたと何が違うのか......。それから、https://www.mql5.com/en/forum/139654 を読んで、トレードをチェックするカウントダウンのループを作ってみてください。 それは完全ではありません...私は今、残りを埋めてテストしようとしています...。ところで、単純なAskでも同じ値を返せるのに、なぜ を使うのでしょうか?double pAsk = MarketInfo(Symbol(), MODE_ASK); Simon Gniadkowski 2013.01.31 16:38 #18 cyxstudio: 完全ではないのですが...今、残りを埋めてテストしているところです...。ところで、単純なAskで同じ値を返せるのに、なぜ を使うのでしょうか? Askが古くなっても、上の呼び出しはRefreshRates()を呼び出す必要なく最新のものになります。 削除済み 2013.01.31 16:43 #19 int BUYS=1,SELLS=1;は、ポジションがオープンされたかどうかの指標になるのでしょうか?自分のスクリプトを追加し、strategy testerで 20日間テストしたところ...何も起こらず、取引も執行されませんでした。 Tjipke de Vries 2013.01.31 17:02 #20 cyxstudio:int BUYS=1,SELLS=1;は、ポジションがオープンされたかどうかの指標になるのでしょうか?自分のスクリプトを追加し、strategy testerで20日間テストしたところ、何も起こらず、取引も執行されませんでした。メタトレーダーを起動すると、EAはトレードがオープンされているかどうかを調べなければなりません。トレードがある場合はトレードをチェック するためのカウントダウンのループだけやっています。最初に1回でOrdersTotal()>0にしたら、トレードをチェックするようにした if(......> || ......> ){ループを実行する 12345 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
あなたのコードを書き換えて、テストしてみました。
最高のバックテスト・データではありませんが、正しく実行すれば、利益を上げることができます。
少なくとも7-10回はいろいろな方法で書きましたが、全く約定しないか、利益がマイナスになりました。
そうすると、何かおかしいと思うんです。
あなたのコードを書き換えて、テストしてみました。
最高のバックテスト・データではありませんが、正しく実行すれば、利益を上げることができます。
あなたのコードを拝見させていただけませんか?
通常は「はい」ですが、今回は「いいえ」で、cyxstudioがRSI用に選択した 設定で行われます。
上値90、下値10で。
どのように見えるか
私はそれを勉強し、私の間違いから学ぶ必要があります。
これが始まりです......。
あなたのコメントをどうぞ......今までのあなたと何が違うのか......。
それから、https://www.mql5.com/en/forum/139654 を読んで、トレードをチェックするカウントダウンのループを作ってみてください。
これが始まりです......。
あなたのコメントをどうぞ......今までのあなたと何が違うのか......。
それから、https://www.mql5.com/en/forum/139654 を読んで、トレードをチェックするカウントダウンのループを作ってみてください。
それは完全ではありません...
私は今、残りを埋めてテストしようとしています...。
ところで、単純なAskでも同じ値を返せるのに、なぜ を使うのでしょうか?
完全ではないのですが...
今、残りを埋めてテストしているところです...。
ところで、単純なAskで同じ値を返せるのに、なぜ を使うのでしょうか?
int BUYS=1,SELLS=1;は、ポジションがオープンされたかどうかの指標になるのでしょうか?
自分のスクリプトを追加し、strategy testerで 20日間テストしたところ...何も起こらず、取引も執行されませんでした。
int BUYS=1,SELLS=1;は、ポジションがオープンされたかどうかの指標になるのでしょうか?
自分のスクリプトを追加し、strategy testerで20日間テストしたところ、何も起こらず、取引も執行されませんでした。
メタトレーダーを起動すると、EAはトレードがオープンされているかどうかを調べなければなりません。
トレードがある場合はトレードをチェック するためのカウントダウンのループだけやっています。
最初に1回でOrdersTotal()>0にしたら、トレードをチェックするようにした if(......> || ......> ){ループを実行する