記事"ユニバーサルEA:イベントモデルと取引ストラテジープロトタイプ(パート2)"についてのディスカッション - ページ 4 12345 新しいコメント Гога 2016.07.05 09:40 #31 Andrey Khatimlianskii: 少なくとも、価格を分析してください。もしかしたら、エントリーする必要はないかもしれない。 はい、そのようなメカニズムがあります。取引注文の クラスでなければ、どこに組み込むべきか?また、そのようなメカニズムをどのように公式化するか、どのような急激な動きを重要視するか。 Andrey Khatimlianskii 2016.07.05 12:41 #32 Гога: そのような仕組みはある。貿易注文の クラスでなければ、どこに組み込まれるべきなのか?また、そのようなメカニズムをどのように公式化すればよいのか、どのような鋭い動きを重要視すればよいのか。それが問題だ!それが、エンジンに組み込まれていない理由だ。あるストラテジーでは20ピプスのスリップは問題ではなく、とにかくエントリーすべきですが、別のストラテジーでは2ピプスのスリップがすべての統計を破り、さらに悪いエントリーをしてはいけません。普遍的な取引エンジンは、この2つの戦略に対して何をすべきでしょうか?そうですね、リクオート価格を返し、取引ロジックに判断を任せます。あるいは、カスタマイズを追加する。より正確には、人生のすべてのケースのための設定 ) Amy Liu 2017.01.06 12:19 #33 とても良い記事だ。とても勉強になった。ありがとう。 Amy Liu 2017.01.06 12:28 #34 Alain Verleyen:ビルド1241では、コードはうまくコンパイルされているので、バックテストを実行してみた。トレードができない。少し調べてみたところ、充填モードが原因であることがわかりました。私が使用しているブローカー/シンボルで許可されているモードは ORDER_FILLING_IOC です。TradeCustomクラスは充填モードをデフォルトでORDER_FILLING_FOKに 設定しています。そして、Agent.mq5 EAがトレードを行うために、このフィリングモードを変更するにはどうすればよいのでしょうか?検索することはできますが、時間がかかります。それがこのようなツールの問題点です。MetaquotesのMQL5ウィザードEAと非常によく似ていて、クラスのすべての詳細を知らない人にはほとんど使えません。いったん作者が提供していない問題に直面すると、それを修正したり、修正・追加したりするのは本当に面倒になる。私は、あなたの解決策とMetaquotes(ウィザード)の解決策の間に本当の違いはないと思います。ともあれ、大仕事おめでとう。素晴らしいプログラミングだ。 MetaEditor5のincludeフォルダにいくつかのクラスがあります。Expertフォルダのクラスはとても複雑に見えるので、どなたか詳しく説明していただけると助かります。EAの標準的な書き方は、形式的な基本クラスに基づいていて、常に車輪を再作成するわけではありません。とにかく、この記事はホイールを再作成しないために大いに役立つ。 Alain Verleyen 2017.01.06 14:24 #35 Amy Liu: MetaEditor5のincludeフォルダにはいくつかのクラスがあります。Expertフォルダのクラスはとても複雑に見えるので、もし誰かが深く説明してくれるなら、とても助かる。EAの標準的なクラスは、形式的な基本クラスに基づいて記述するのが一般的で、常に車輪を作り直す必要はありません。とにかく、この記事は車輪を作り直さないために大いに役立つ。 私もそう思う。問題はフレームワークにバグがある場合だ。フレームワークを使う前に、そのフレームワークを深く学ぶか、作者によってしっかりとサポートされていることを確認するべきだ。 Amy Liu 2017.01.06 15:15 #36 Alain Verleyen: 私もそう思う。問題はフレームワークにバグがある場合だ。フレームワークを使う前に、そのフレームワークを深く学ぶか、作者によってしっかりとサポートされていることを確認する必要がある。 これが、私がMetaEditor5のクラスを学びたい理由だ。) Alain Verleyen 2017.01.06 20:11 #37 Amy Liu: だからMetaEditor5のクラスを学びたいんだ。) そして、バグだらけでサポートされていない :-D Metin Kostekci 2018.02.11 14:47 #38 ありがとう。 zemo 2018.11.29 14:26 #39 ヴァシリーさん、 とても素晴らしいコードですね。 mt5のニュースビルド(1952)では、コンパイラに "メッセージ "が表示されました、 bool CBarDetector::IsNewBar(void) { datetime time[]; if(CopyTime(m_symbol, m_timeframe, 0, 1, time) < 1)return false; if(time[0] == m_last_time)return false; return (m_last_time = time[0]); //<=============ここから } //+------------------------------------------------------------------+/////////////////////////////////////////////////////////////////////////////// expression not boolean NewBarDetector.mqh 87 24 これは正しいのでしょうか?//+------------------------------------------------------------------+ //| 指定されたシンボルとタイムフレームに|が存在する場合、trueを返す。 //| 新しいバー。| //+------------------------------------------------------------------+ bool CBarDetector::IsNewBar(void) { datetime time[]; if(CopyTime(m_symbol, m_timeframe, 0, 1, time) < 1)return (false); if(time[0] == m_last_time)return (false); return (m_last_time == time[0]); } //+------------------------------------------------------------------+ Shephard Mukachi 2018.12.13 03:50 #40 こんにちは、バシリイ、 あなたが記事を書いた後、こんなところまで質問することをお許しください。私は今、フレームワークの代替案を探すために記事をきちんと読んでいるところです。私の誤解の可能性が高いのですが、奇妙に感じたことがあります。 New TickとNew Barのイベントハンドラについて。追加されたティックのリストをループし、イベント構造を構築し、それをInitとSupportイベントハンドラに渡します: //+------------------------------------------------------------------+ //| 複数楽器の新しいティックの到着を検出する。 //+------------------------------------------------------------------+ void CStrategy::NewTickDetect(void) { if(m_ticks_detectors.Total()==0) AddTickEvent(ExpertSymbol()); for(int i=0; i<m_ticks_detectors.Total(); i++) { CTickDetector *tick=m_ticks_detectors.At(i); if(tick.IsNewTick()) { m_event.period=PERIOD_CURRENT; m_event.type=MARKET_EVENT_TICK; m_event.symbol=tick.Symbol(); CallSupport(m_event); CallInit(m_event); } } } 例えば、以下の移動平均クリップのように; bool CMovingAverage::IsTrackEvents(const MarketEvent &event) { //--- 作業中のシンボルとタイムフレーム上の新しいバーのオープンのみを処理する。 if(event.type != MARKET_EVENT_BAR_OPEN)return false; if(event.period != Timeframe())return false; if(event.symbol != ExpertSymbol())return false; return true; } このIsTrackEvents関数は、上記のNewTickDetect関数の目的を無効にするようです!つまり、上記の移動平均の例では、NewTickDetectのように複数のシンボルをチェックする機能に基づいて、複数の金融商品で取引できるはずですが、IsTrackEventsは、ストラテジーの時間枠とシンボル(ここではシンボルがキー)に対してのみ取引を許可します。これは、ストラテジーがそのシンボルに対してのみ取引ができるため、NewTickDetectループは実際には必要ないということではないのでしょうか?事実上、NewTickDetectは、受信したティックがストラテジーのシンボルであるかどうかだけをチェックする必要があります。これは実質的に、興味のあるシンボルごとにストラテジー・オブジェクトを持ち、それをCStragyListがループするのと同じようなものでしょうか? 私の言っていることが理解できることを願っています。 私はあなたの仕事が大好きです。あなたの記事から多くを学びました。 よろしくお願いします、 シェップ 12345 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
少なくとも、価格を分析してください。もしかしたら、エントリーする必要はないかもしれない。
そのような仕組みはある。貿易注文の クラスでなければ、どこに組み込まれるべきなのか?また、そのようなメカニズムをどのように公式化すればよいのか、どのような鋭い動きを重要視すればよいのか。
それが問題だ!それが、エンジンに組み込まれていない理由だ。
あるストラテジーでは20ピプスのスリップは問題ではなく、とにかくエントリーすべきですが、別のストラテジーでは2ピプスのスリップがすべての統計を破り、さらに悪いエントリーをしてはいけません。
普遍的な取引エンジンは、この2つの戦略に対して何をすべきでしょうか?そうですね、リクオート価格を返し、取引ロジックに判断を任せます。
あるいは、カスタマイズを追加する。より正確には、人生のすべてのケースのための設定 )
ビルド1241では、コードはうまくコンパイルされているので、バックテストを実行してみた。トレードができない。
少し調べてみたところ、充填モードが原因であることがわかりました。私が使用しているブローカー/シンボルで許可されているモードは ORDER_FILLING_IOC です。TradeCustomクラスは充填モードをデフォルトでORDER_FILLING_FOKに 設定しています。そして、Agent.mq5 EAがトレードを行うために、このフィリングモードを変更するにはどうすればよいのでしょうか?検索することはできますが、時間がかかります。
それがこのようなツールの問題点です。MetaquotesのMQL5ウィザードEAと非常によく似ていて、クラスのすべての詳細を知らない人にはほとんど使えません。いったん作者が提供していない問題に直面すると、それを修正したり、修正・追加したりするのは本当に面倒になる。私は、あなたの解決策とMetaquotes(ウィザード)の解決策の間に本当の違いはないと思います。
ともあれ、大仕事おめでとう。素晴らしいプログラミングだ。
MetaEditor5のincludeフォルダにはいくつかのクラスがあります。Expertフォルダのクラスはとても複雑に見えるので、もし誰かが深く説明してくれるなら、とても助かる。EAの標準的なクラスは、形式的な基本クラスに基づいて記述するのが一般的で、常に車輪を作り直す必要はありません。とにかく、この記事は車輪を作り直さないために大いに役立つ。
私もそう思う。問題はフレームワークにバグがある場合だ。フレームワークを使う前に、そのフレームワークを深く学ぶか、作者によってしっかりとサポートされていることを確認する必要がある。
だからMetaEditor5のクラスを学びたいんだ。)
ヴァシリーさん、
とても素晴らしいコードですね。
mt5のニュースビルド(1952)では、コンパイラに "メッセージ "が表示されました、
//+------------------------------------------------------------------+
expression not boolean NewBarDetector.mqh 87 24
これは正しいのでしょうか?
こんにちは、バシリイ、
あなたが記事を書いた後、こんなところまで質問することをお許しください。私は今、フレームワークの代替案を探すために記事をきちんと読んでいるところです。私の誤解の可能性が高いのですが、奇妙に感じたことがあります。
New TickとNew Barのイベントハンドラについて。追加されたティックのリストをループし、イベント構造を構築し、それをInitとSupportイベントハンドラに渡します:
例えば、以下の移動平均クリップのように;
このIsTrackEvents関数は、上記のNewTickDetect関数の目的を無効にするようです!つまり、上記の移動平均の例では、NewTickDetectのように複数のシンボルをチェックする機能に基づいて、複数の金融商品で取引できるはずですが、IsTrackEventsは、ストラテジーの時間枠とシンボル(ここではシンボルがキー)に対してのみ取引を許可します。これは、ストラテジーがそのシンボルに対してのみ取引ができるため、NewTickDetectループは実際には必要ないということではないのでしょうか?事実上、NewTickDetectは、受信したティックがストラテジーのシンボルであるかどうかだけをチェックする必要があります。これは実質的に、興味のあるシンボルごとにストラテジー・オブジェクトを持ち、それをCStragyListがループするのと同じようなものでしょうか?
私の言っていることが理解できることを願っています。
私はあなたの仕事が大好きです。あなたの記事から多くを学びました。
よろしくお願いします、
シェップ