記事"トレーディングモデルに基づくマルチエキスパートアドバイザーの作成"についてのディスカッション - ページ 5 1234567 新しいコメント Vasiliy Sokolov 2011.01.30 00:29 #41 MetaTrader 5 Client Terminal build 381...MQL5:標準ライブラリが 更新されました:CDealInfo、CHistoryOrderInfo、COrderInfo、CPositionInfo クラスのType()メソッドがそれぞれDealType()、OrderType()、PositionType() に名称変更されました。... このモデルはベースとなるトレード・クラスに依存しているため、そのインターフェイスの些細な変更でさえも重要です。この場合、TableOrders.mqh ファイルの Type() メソッドを対応する OrderType() に変更するだけで、エラーは簡単に修正できます。近い将来、この記事に添付されているコードは、コンパイラとターミナルの最新ビルドで正しく動作するように更新される予定です。 n2535904 2011.01.31 10:39 #42 chr1sch4n:エラーはありません...あなたが書き直したコードは同じです。 C言語では、case文はフォールスルーされます。そのため、break文を入れなければなりません。したがって、Buyは次の文にフォールスルーされ、まだ順番に実行されるはずです。参考:http://en.wikipedia.org/wiki/Switch_ statement ; sectionC, C++, Java, PHP, ActionScript, JavaScript; "this is a classic example of omitting thebreak line to allow for fall through" 「これは、フォールスルーを可能にするためにブレーク 行を省略している典型的な例です」。乾杯 Discussion of article "Creating Gunn, astromechanics. Forecasts, discussion buffer issues :( Automated-Trading 2011.02.01 18:19 #43 Lugner:リクエスト - 英語ファイルでのコメントを翻訳できますか? 修正しました。ありがとうございます。 NFTrader 2011.04.18 13:08 #44 今まで読んだ中で最高の記事のひとつだ。 williamwong 2011.08.05 17:37 #45 記事にあるような印象的なバックテストが できないようです。 Михаил Янович 2011.11.02 03:02 #46 "m_timing " 変数については、別途説明する価値がある。Expert Advisorの動作の過程で、特定の時間間隔で特定のイベントを呼び出す必要があります。モデルによって時間間隔が異なることがあるため、OnTimer()関数はこれには適していません。たとえば、新しいバー ごとに呼び出す必要があるイベントがあります。1時間足チャートで取引するモデルの場合、そのようなイベントは1時間ごとに呼び出す必要があり、日足チャートで取引するモデルの場合、新しい日足バーごとに呼び出す必要があります。これらのモデルが異なる時間設定を持っていることは明らかであり、それに応じてそれぞれのモデルに格納されるべきである。CModelクラスに含まれるt_period構造体により、これらの設定を別々に、それぞれのモデルに格納することができます。この構造体は以下のようになります:struct t_period { большая структура }; ご覧の通り、通常のタイムフレームの列挙が 含まれています。新しいバーが発生したかどうかを 調べるには、最後のバーの時刻と t_period 構造体に記録されている時刻を比較する必要があります。もし時刻が一致しなければ、新しいバーが発生したことになり、構造体の時刻は現在のバーの時刻に更新され、肯定的な結果(true)が返されます。最後のバーの時刻と構造体の時刻が一致すれば、それは新しいバーがまだ発生していないことを意味するので、否定結果(false)を返せばよい。以下に、説明したアルゴリズムに従って動作する関数を示します:bool timing(string symbol, ENUM_TIMEFRAMES tf, t_period &timeframes) { большой swich } " もちろん、私は初心者プログラマーに過ぎませんが、(変数m_timingを単なるdatetimeにしながら)そうするために新しいバーの開始を決定することは可能かもしれません:もし結論が間違っていたら、あらかじめお詫びし、訂正をお願いします。私が間違っていなければ、このサイトと、特にここで働いているすべての人々に感謝します - 記事、ドキュメントの書き込み - 私は何かを理解し始めた。bool timing(string symbol, ENUM_TIMEFRAMES tf, t_period &timeframes) { int rez; MqlRates raters[1]; rez=CopyRates(symbol, tf, 0, 1, raters); if(rez==0) { Print("Error timing"); return(false); } if (TimeCurrent()-raters.time)>PeriodSeconds(tf) return(true); else return(false); } 追伸:ところで、素晴らしい記事をありがとう。 P_Cherry 2012.01.16 17:11 #47 こんにちは、ペア取引(別のシンボル)をサポートするために、モデルやProcessing()関数を どのように拡張できますか?現在、インジケータとその後の取引はすべて同じシンボルのみで動作しています。Symbol1とSymbol2を追加して、Symbol1の買いとSymbol2の売りを同時に行えるようにするにはどうすればよいでしょうか?よろしくお願いします。追伸:または、Symbol2上のインジケータの動作に基づいてSymbol1を売買する... P_Cherry 2012.01.23 14:50 #48 P_Cherry:こんにちは、ペア取引(別のシンボル)をサポートするために、モデルやProcessing()関数をどのように拡張できますか?現在、インジケータとその後の取引はすべて同じシンボルのみで動作しています。Symbol1とSymbol2を追加して、Symbol1の買いとSymbol2の売りを同時に行えるようにするにはどうすればよいでしょうか?よろしくお願いします。追伸:あるいは、Symbol2上のインジケータの動作に基づいて、Symbol1を売買する...。 可能でしょうか? supercoder2006 2012.08.01 23:41 #49 Automated-Trading: 修正しました。ありがとう。 ありがとう。 nightwing667 2012.11.26 23:01 #50 こんにちは、素晴らしい記事をありがとうございます。ReplacedDelayedOrdersという関数の 中に次のような行があります: for(int b=0;i<history_orders;b++)これは無限ループを引き起こすと思うのですが、間違っていますか?コード行は次のようにしなければならないと思います: for(int b=0;b<history_orders;b++)さようなら、T。 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
MetaTrader 5 Client Terminal build 381
...
MQL5:標準ライブラリが 更新されました:CDealInfo、CHistoryOrderInfo、COrderInfo、CPositionInfo クラスのType()メソッドがそれぞれDealType()、OrderType()、PositionType() に名称変更されました。
...
このモデルはベースとなるトレード・クラスに依存しているため、そのインターフェイスの些細な変更でさえも重要です。この場合、TableOrders.mqh ファイルの Type() メソッドを対応する OrderType() に変更するだけで、エラーは簡単に修正できます。
近い将来、この記事に添付されているコードは、コンパイラとターミナルの最新ビルドで正しく動作するように更新される予定です。
chr1sch4n:エラーはありません...あなたが書き直したコードは同じです。
C言語では、case文はフォールスルーされます。そのため、break文を入れなければなりません。したがって、Buyは次の文にフォールスルーされ、まだ順番に実行されるはずです。
参考:http://en.wikipedia.org/wiki/Switch_ statement ; sectionC, C++, Java, PHP, ActionScript, JavaScript; "this is a classic example of omitting thebreak line to allow for fall through" 「これは、フォールスルーを可能にするためにブレーク 行を省略している典型的な例です」。
乾杯
リクエスト - 英語ファイルでのコメントを翻訳できますか?
記事にあるような印象的なバックテストが できないようです。
"m_timing " 変数については、別途説明する価値がある。Expert Advisorの動作の過程で、特定の時間間隔で特定のイベントを呼び出す必要があります。モデルによって時間間隔が異なることがあるため、OnTimer()関数はこれには適していません。
たとえば、新しいバー ごとに呼び出す必要があるイベントがあります。1時間足チャートで取引するモデルの場合、そのようなイベントは1時間ごとに呼び出す必要があり、日足チャートで取引するモデルの場合、新しい日足バーごとに呼び出す必要があります。これらのモデルが異なる時間設定を持っていることは明らかであり、それに応じてそれぞれのモデルに格納されるべきである。CModelクラスに含まれるt_period構造体により、これらの設定を別々に、それぞれのモデルに格納することができます。
この構造体は以下のようになります:
struct t_period { большая структура };ご覧の通り、通常のタイムフレームの列挙が 含まれています。新しいバーが発生したかどうかを 調べるには、最後のバーの時刻と t_period 構造体に記録されている時刻を比較する必要があります。もし時刻が一致しなければ、新しいバーが発生したことになり、構造体の時刻は現在のバーの時刻に更新され、肯定的な結果(true)が返されます。最後のバーの時刻と構造体の時刻が一致すれば、それは新しいバーがまだ発生していないことを意味するので、否定結果(false)を返せばよい。
以下に、説明したアルゴリズムに従って動作する関数を示します:
"
もちろん、私は初心者プログラマーに過ぎませんが、(変数m_timingを単なるdatetimeにしながら)そうするために新しいバーの開始を決定することは可能かもしれません:
もし結論が間違っていたら、あらかじめお詫びし、訂正をお願いします。私が間違っていなければ、このサイトと、特にここで働いているすべての人々に感謝します - 記事、ドキュメントの書き込み - 私は何かを理解し始めた。
追伸:ところで、素晴らしい記事をありがとう。
こんにちは、
ペア取引(別のシンボル)をサポートするために、モデルやProcessing()関数を どのように拡張できますか?現在、インジケータとその後の取引はすべて同じシンボルのみで動作しています。Symbol1とSymbol2を追加して、Symbol1の買いとSymbol2の売りを同時に行えるようにするにはどうすればよいでしょうか?
よろしくお願いします。
追伸:または、Symbol2上のインジケータの動作に基づいてSymbol1を売買する...
こんにちは、
ペア取引(別のシンボル)をサポートするために、モデルやProcessing()関数をどのように拡張できますか?現在、インジケータとその後の取引はすべて同じシンボルのみで動作しています。Symbol1とSymbol2を追加して、Symbol1の買いとSymbol2の売りを同時に行えるようにするにはどうすればよいでしょうか?
よろしくお願いします。
追伸:あるいは、Symbol2上のインジケータの動作に基づいて、Symbol1を売買する...。
修正しました。ありがとう。
こんにちは、
素晴らしい記事をありがとうございます。
ReplacedDelayedOrdersという関数の 中に次のような行があります: for(int b=0;i<history_orders;b++)
これは無限ループを引き起こすと思うのですが、間違っていますか?
コード行は次のようにしなければならないと思います: for(int b=0;b<history_orders;b++)
さようなら、T。