こんにちは!
一連の記事と、MQL4用のコードに感謝します!
実例について。
課題は
- ある相場条件が 発生したとき、損切りは同じ終値水準、利食いは異なる水準で、同じ方向に複数のポジションを建てる。
- 同じような条件が下/上で発生した場合、同じ方向でさらにいくつかのポジションを、やはり同じ終値レベルの損失と異なる利益レベルで建てる。
- 最初のポジションの累積サイズは、貸借対照表から2%の損失を考慮して決定する。
- 2つ目のポジションの累積サイズは、資金の2%の損失を考慮して決定されるべきである。
- 未決済注文を使用することは想定していません。
私のMQL4 Expert Advisorには、エントリーポイントを見つけるアルゴリズムがすでに実装されていますが、取引操作はまだありません。
注意、質問 ))
最初のシリーズのライブラリ、クラス、メソッドのどれが開発のスピードアップに役立つでしょうか?
- www.mql5.com
こんにちは!
一連の記事と、MQL4用のコードをありがとう!
実用的な例について。
タスクがあります、
- ある相場条件が 発生したら、同じ方向のポジションを、同じ終値の損失水準と異なる利益水準で複数建てる。
- 同じような条件が下/上で発生した場合、同じ方向でさらにいくつかのポジションを、やはり同じ終値レベルの損失と異なる利益レベルで建てる+オープンポジションの損失レベルをゼロに変更する。
- 最初のポジションの累積サイズは、貸借対照表から2%の損失を考慮して決定する。
- 2つ目のポジションの累積サイズは、資金の2%の損失を考慮して決定されるべきである。
- 未決済注文の取り扱いは想定していない。
私のMQL4 Expert Advisorには、エントリーポイントを見つけるアルゴリズムはすでに実装されていますが、取引操作はまだありません。
注意、質問 ))
最初のシリーズのライブラリ、クラス、メソッドのうち、どれが開発のスピードアップに役立ちそうですか?
完全な説明ではありません。
1.マジックナンバーの最初のグループ識別子を即座に同じにしてポジションを建てる。これで最初のグループ全体を識別子1で検索できる。
2.ポジションをオープンし、即座にマジックナンバーの2番目のグループ識別子をそれらと同じに設定する。これで、第2グループ全体を識別子2で検索できるようになります。
2.1 2つ目のグループのポジションをオープンした後、リストでグループ1のすべてのポジションを選択し、それらのストップロス・レベルを計算されたブレークイーブン・レベルに変更します。レベルは個別に計算する必要があります。最初のグループのポジションリストが利用可能で、その累積損益が簡単に計算できます。
3. この項目は累積出来高ですか?もしそうなら、最初のグループのポジションを建てる前に計算してください。
4.この項目は累計数量ですか?もしそうなら、第2グループのポジションを建てる前に計算してください。ただし、その資金は、第1グループの証拠金とその損益-自由資金の変動損益に依存します。
5.ポジションを建てるために必要な条件を揃えるには、ポジションを建てる前のリクエストが便利です。事前に計画を立て、期待値を設定する。私は主張しない - それは取引の戦術とテクニックを計画するための手段です。
答え - このすべては、意図されたものを実現するための最初の部分にあります。私は質問を理解していない - 何かをしようとする試みはありません。したがって - 私は唯一の言葉を使用することができます。
アルテム、こんにちは。
容量の点で、非現実的な仕事です。
私のMT4テスト端末は、ほとんどの場合、投資家モードで実際の取引口座に 接続されています。
これは、テスターで取引口座の条件(スワップ、手数料、ストップレベルなど、TDSでスワップされないもの)を最大化するためです。
しかし、ライブラリは口座での取引が禁止されていることを検知し、取引を拒否します。テスターでは。
テスターで動作するための制限のいくつかを明示的に緩和することは意味があるのかも?
どうやら、ここにあるようだ:
//--- この口座の取引権限をチェックする(取引サーバーとの接続がある場合)。 else if(!this.m_account.TradeAllowed() && !::MQLInfoInteger(MQL_TESTER)) { //--- エラーコードをリストに書き込み、falseを返す。 this.m_error_reason_flags=TRADE_REQUEST_ERR_FLAG_ERROR_IN_LIST; this.AddErrorCodeToList(MSG_LIB_TEXT_ACCOUNT_NOT_TRADE_ENABLED); return false; }
私も追加しましたが、テスターで無視する意味のあるチェックはこれだけではないかもしれません?
- www.mql5.com
アルテム、こんにちは
キャパシティの面では非現実的な仕事だった。
私のMT4テストターミナルは、ほとんどの場合、投資家モードで実際の取引口座に 接続されています。
これは、テスターで取引口座の条件(スワップ、手数料、ストップレベルなど、RTDでスワップされないもの)を最大限に利用するためです。
しかし、ライブラリは口座での取引が禁止されていることを検知し、取引を拒否します。テスターでは
テスターで動作するための制限のいくつかを明示的に緩和するのは理にかなっているのでは?
らしい:
私も追加しましたが、テスターで無視する意味のあるチェックはこれだけではないかも?
ありがとう。
この コードをありがとうございます。
MT4で、口座/取引イベントをリッスンするためのテストボタンがない状態で、修正バージョンを実行してみましたが、3つの取引をオープン/クローズしたときに、間違った結果が表示されました:
01:17:13.849 を削除しました。
01:17:13.733 uninit reason 4
01:15:36.860 OnDoEasyEvent:ポジションクローズ
01:15:36.860 - ポジションクローズ: 2020.08.20 23:45:29.000 -EURUSD クローズ売り #573015195 at price 1.18610, 利益 -0.13 USD
01:15:35.489 CEventsCollection::CreateNewEvent, Line 768:このイベントはすでにリストにあります。
01:15:35.019 OnDoEasyEvent:ポジションクローズ
01:15:35.019 - ポジションクローズ: 2020.08.20 23:45:27.000 -EURUSD 決済 買い #573015193 at 価格 1.18623, 利益 -0.13 USD
01:15:30.144 OnDoEasyEvent:ポジションオープン
01:15:30.144 - ポジションオープン: 2020.08.20 23:45:29.000 -EURUSD 0.01売り #573015195 [0.01 成行注文 売り #573015195] at price 1.18610
01:15:28.724 OnDoEasyEvent:ポジションオープン
01:15:28.724 - ポジションオープン: 2020.08.20 23:45:28.000 -EURUSD 0.01 買い #573015194 [0.01 成行注文 買い #573015194] at price 1.18623
01:15:28.263 OnDoEasyEvent:ポジションオープン
01:15:28.257 - ポジションオープン: 2020.08.20 23:45:27.000 -EURUSD 0.01 買い #573015193 [0.01 成行注文 買い #573015193] at price 1.18623
01:14:49.639 初期化済み
01:14:22.120 CAccount::Load:uchar 配列からオブジェクト構造を作成できませんでした。
01:14:22.120 CAccount::Load:uchar配列からオブジェクト構造を作成できませんでした。
01:14:22.120 CAccount::Load:uchar配列からオブジェクト構造を作成できませんでした。
01:14:22.120 Account ****:**** (****) **** USD, 1:100, ヘッジ, デモ口座MetaTrader 4
01:14:20.357 ロード成功
私のテストコードでは、おそらく何が間違っているのでしょうか?
このコードをありがとう。
MT4で、口座/取引イベントをリッスンするためのテストボタンがない状態で、修正版を実行してみましたが、3つの取引をオープン/クローズしたときに、間違った結果が表示されました:
01:17:13.849 を削除しました。
01:17:13.733 uninit reason 4
01:15:36.860 OnDoEasyEvent:ポジションクローズ
01:15:36.860 - ポジションクローズ: 2020.08.20 23:45:29.000 -EURUSD クローズ売り #573015195 at price 1.18610, 利益 -0.13 USD
01:15:35.489 CEventsCollection::CreateNewEvent, Line 768:このイベントはすでにリストにあります。
01:15:35.019 OnDoEasyEvent:ポジションクローズ
01:15:35.019 - ポジションクローズ: 2020.08.20 23:45:27.000 -EURUSD 決済 買い #573015193 at 価格 1.18623, 利益 -0.13 USD
01:15:30.144 OnDoEasyEvent:ポジションオープン
01:15:30.144 - ポジションオープン: 2020.08.20 23:45:29.000 -EURUSD 0.01売り #573015195 [0.01 成行注文 売り #573015195] at price 1.18610
01:15:28.724 OnDoEasyEvent:ポジションオープン
01:15:28.724 - ポジションオープン: 2020.08.20 23:45:28.000 -EURUSD 0.01 買い #573015194 [0.01 成行注文 買い #573015194] at price 1.18623
01:15:28.263 OnDoEasyEvent:ポジションオープン
01:15:28.257 - ポジションオープン: 2020.08.20 23:45:27.000 -EURUSD 0.01 買い #573015193 [0.01 成行注文 買い #573015193] at price 1.18623
01:14:49.639 初期化済み
01:14:22.120 CAccount::Load:uchar 配列からオブジェクト構造を作成できませんでした。
01:14:22.120 CAccount::Load:uchar配列からオブジェクト構造を作成できませんでした。
01:14:22.120 CAccount::Load:uchar配列からオブジェクト構造を作成できませんでした。
01:14:22.120 Account ****:**** (****) **** USD, 1:100, ヘッジ, デモ口座MetaTrader 4
01:14:20.357 ロード成功
私のテストコードでは、おそらく何が間違っているのでしょうか?
何を変更したのか分からない.
ボタンに関連するコードをいくつかカットしましたが、必要なコードを削除する ことは可能です。それを添付します。
しかし、2回目の終値の買いポジションをキャプチャしていないというエラーは、私の変更とは関係ないということに同意しますか?
ボタンに関連するコードをいくつかカットしましたが、必要なコードを削除することは可能です。添付します。
しかし、2回目の終値の買いポジションをキャプチャしていないというエラーは、私の変更とは関係ないということに同意しますか?
テストアドバイザーはエラーなしで動作しますか?
テストアドバイザーはエラーなく機能していますか?
これらの`CAccount`エラーはデフォルトのTestDoEasyPart34.ex4で表示されます。
私は修正したEAを動かして自分のイベントを監視し、それから手動でいくつかの取引を行い、できるだけ早く決済します。
これらの`CAccount`エラーはデフォルトのTestDoEasyPart34.ex4で表示されます。
-----
ご参考までに:
口座オブジェクトの構造を変更したため(口座の文字列プロパティを格納するuchar配列のサイズを変更し、さらに整数プロパティを1つ追加)、以前に保存した口座オブジェクトのファイルはすべて正しくロードされなくなりました。
このテスト・アドバイザーを起動する前に、端末の共通フォルダの ㊤Files㊦にあるファイルを全部削除してください。オブジェクト構造の新しいサ イズでアカウントから別のアカウントに切り替えるときに、再作成されます。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事 MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第29部): 未決取引リクエスト - 特定の条件下での注文とポジションの削除と変更 はパブリッシュされました:
本稿では、保留中リクエスト取引の概念の説明を完了し、未決注文を削除する機能と、特定の条件下で注文とポジションを変更する機能を作成します。したがって、シンプルなカスタム戦略、またはユーザ定義の条件でアクティブ化されるEA動作ロジックを開発できるようになります。
コンパイルしてテスターでEAをビジュアライゼーションモードで起動します。注文の削除や注文とポジションの変更を確認するには、2つの売りポジションを開いて、StopLossレベルとTakeProfitレベルなしで売り指値注文を出します。次に、保留中リクエストを作成して、価格値によって注文とポジションのストップレベルを変更します。保留中リクエストがアクティブになるのを待ち、指定されたストップレベルを設定して、注文とポジションを削除します。
次に、2つの買いポジションを開き、買い指値注文を出します。その後、注文を削除してポジションを時間までに決済するための保留中リクエストを作成します。
ご覧のように、ストップレベルは、特定の保留中リクエストの発動価格レベルの交差部分に設定されています。指定された時間後にポジションが決済され、注文が削除されました。
作者: Artyom Trishkin