OnTradeTransactionバックテストでのストップトリガーの検出 - ページ 4

 
angevoyageur:

つまり、私たちはバックテストについてだけ話しているのです。私は自分のコードでテストし、私はストップがトリガされたときに3つのトランザクションを取得しました。

2013.05.15 10:22:27    Core 1    2013.05.10 16:20:37   Symbol : EURUSD  event : TRADE_TRANSACTION_DEAL_ADD(6)
2013.05.15 10:22:27    Core 1    2013.05.10 16:20:37   Symbol : EURUSD  event : TRADE_TRANSACTION_ORDER_DELETE(2)
2013.05.15 10:22:27    Core 1    2013.05.10 16:20:37   Symbol : EURUSD  event : TRADE_TRANSACTION_HISTORY_ADD(3)

DEAL_ADDで、私は取引の価格を取得し、私の場合はSLです。すべて正しいようです。使用したコード、バックテストログ(ファイルとして)、ストラテジーテスターの設定のスクリーンショットを私に送ることを提案します。そうすれば、あなたと全く同じテストを再現し、その結果を分析することができます。もしご希望であれば、PMで送っていただいても結構です。

こんにちは。

実行されたストップまたはターゲット価格が正確にどこに保存されているか教えてください。

a) MqlTradeTransaction

b)MqlTradeRequest

c) MqlTradeResult

とメンバーです。どのMetaTraderサーバーですか?

ありがとうございます。

Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Trade Request Structure
Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Trade Request Structure
  • www.mql5.com
Standard Constants, Enumerations and Structures / Data Structures / Trade Request Structure - Documentation on MQL5
 
angevoyageur:

ということで、バックテストのみの話です。私は自分のコードでテストしましたが、ストップがトリガーされたときに3つのトランザクションを得ました。

2013.05.15 10:22:27    Core 1    2013.05.10 16:20:37   Symbol : EURUSD  event : TRADE_TRANSACTION_DEAL_ADD(6)
2013.05.15 10:22:27    Core 1    2013.05.10 16:20:37   Symbol : EURUSD  event : TRADE_TRANSACTION_ORDER_DELETE(2)
2013.05.15 10:22:27    Core 1    2013.05.10 16:20:37   Symbol : EURUSD  event : TRADE_TRANSACTION_HISTORY_ADD(3)

DEAL_ADDで取引の価格を取得し、私の場合はSLを取得しました。私にはすべてが正しく見えます。使用したコード、バックテストログ(ファイルとして)、ストラテジーテスターの設定のスクリーンショットを私に送ることを提案します。そうすれば、あなたと全く同じテストを再現し、その結果を分析することができます。もしご希望であれば、PMで送っていただいても結構です。

TRADE_TRANSACTION_DEAL_ADD とMqlTradeTransaction.price のことでしたら、この価格は常に0です。

TRADE_TRANSACTION_DEAL_ADDを フィルタリングしない場合でも、エントリーオーダーが送信された後、価格は常に0に なります。

私が使用しているのは

CTrade.Buy(...)  // place entry

CTrade.PositionModify // to attach stop and target

void OnTradeTransaction(const MqlTradeTransaction& trans,
                        const MqlTradeRequest& request,
                        const MqlTradeResult& result)
  {
...
}

でトランザクションを捕捉します。

 
chinaski:

TRADE_TRANSACTION_DEAL_ADD と MqlTradeTransaction.price のこと であれば、この価格は常に 0 になります。

TRADE_TRANSACTION_DEAL_ADDを フィルタリングしない場合でも、エントリーオーダーが送信さ れた後、価格は常に0になります。

私が使用しているのは

を使用してトランザクションをキャッチします。

これはMqlTradeTransaction.priceと一緒で、常に0とは限りません。

2013.05.15 10:22:27     Core 1  2013.05.10 16:20:37   stop loss triggered buy 0.10 EURUSD 1.30163 sl: 1.29663 tp: 1.30663 [#47  sell 0.10 EURUSD at 1.29663]
2013.05.15 10:22:27     Core 1  2013.05.10 16:20:37   deal #47  sell 0.10 EURUSD at 1.29663 done (based on order #47)
2013.05.15 10:22:27     Core 1  2013.05.10 16:20:37   deal performed [#47  sell 0.10 EURUSD at 1.29663]
2013.05.15 10:22:27     Core 1  2013.05.10 16:20:37   order performed sell 0.10 at 1.29663 [#47  sell 0.10 EURUSD at 1.29663]
2013.05.15 10:22:27     Core 1  2013.05.10 16:20:37   ----------------TRANSACTION START---------------------------
2013.05.15 10:22:27     Core 1  2013.05.10 16:20:37   Symbol : EURUSD  event : TRADE_TRANSACTION_DEAL_ADD(6)
2013.05.15 10:22:27     Core 1  2013.05.10 16:20:37   Order #47   type : ORDER_TYPE_BUY(0)  state : ORDER_STATE_STARTED(0)
2013.05.15 10:22:27     Core 1  2013.05.10 16:20:37   Deal #47  type : DEAL_TYPE_SELL(1)
2013.05.15 10:22:27     Core 1  2013.05.10 16:20:37   Price = 1.29663 Volume = 0.1 SL = 0.0 TP = 0.0 Activation price = 0.0

あなたの結果には何か奇妙なものがありますが、提供されたコードでは何が何だかわかりません。

 

あなたのEA tc_ea_trans のログはこちらです。

2013.05.15 18:43:48     Core 1  2013.05.02 08:39:15   take profit triggered buy 0.01 EURUSD 1.31553 sl: 1.31503 tp: 1.31603 [#331  sell 0.01 EURUSD at 1.31603]
2013.05.15 18:43:48     Core 1  2013.05.02 08:39:15   deal #331  sell 0.01 EURUSD at 1.31603 done (based on order #331)
2013.05.15 18:43:48     Core 1  2013.05.02 08:39:15   deal performed [#331  sell 0.01 EURUSD at 1.31603]
2013.05.15 18:43:48     Core 1  2013.05.02 08:39:15   order performed sell 0.01 at 1.31603 [#331  sell 0.01 EURUSD at 1.31603]
2013.05.15 18:43:48     Core 1  2013.05.02 08:39:15   price corrected from 1.31609 to 1.31604, deviation: 10 (instant sell 0.01 EURUSD at 1.31609 sl: 1.31659 tp: 1.31559)(1.31604 / 1.31609 / 1.31604)
2013.05.15 18:43:48     Core 1  2013.05.02 08:39:15   instant sell 0.01 EURUSD at 1.31604 sl: 1.31659 tp: 1.31559 (1.31604 / 1.31609 / 1.31604)
2013.05.15 18:43:48     Core 1  2013.05.02 08:39:15   deal #332  sell 0.01 EURUSD at 1.31604 done (based on order #332)
2013.05.15 18:43:48     Core 1  2013.05.02 08:39:15   deal performed [#332  sell 0.01 EURUSD at 1.31604]
2013.05.15 18:43:48     Core 1  2013.05.02 08:39:15   order performed sell 0.01 at 1.31604 [#332  sell 0.01 EURUSD at 1.31604]
2013.05.15 18:43:48     Core 1  2013.05.02 08:39:15   CTrade::OrderSend: instant sell 0.01 EURUSD at 1.31609 sl: 1.31659 tp: 1.31559 [done at 1.31604]
2013.05.15 18:43:48     Core 1  2013.05.02 08:39:15   TRADE_TRANSACTION_DEAL_ADD
2013.05.15 18:43:48     Core 1  2013.05.02 08:39:15   trans=symbol=EURUSD price=1.31603 00 volume=0.01 sl=0.0000000 tp=0.0000000 order=331 deal=331 entry-type=IN trans-type=DEAL_ADD order_type=BUY deal_type=DEAL_TYPE_SELL type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit
2013.05.15 18:43:48     Core 1  2013.05.02 08:39:15   TRADE_TRANSACTION_ORDER_DELETE
2013.05.15 18:43:48     Core 1  2013.05.02 08:39:15   trans=symbol=EURUSD price=1.3160300 volume=0.01 sl=0.0000000 tp=0.0000000 order=331 deal=0 entry-type=IN trans-type=ORDER_DELETE order_type=SELL deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 prof
2013.05.15 18:43:48     Core 1  2013.05.02 08:39:15   TRADE_TRANSACTION_HISTORY_ADD
2013.05.15 18:43:48     Core 1  2013.05.02 08:39:15   trans=symbol=EURUSD price=1.3160300 volume=0.00 sl=0.0000000 tp=0.0000000 order=331 deal=0 entry-type=IN trans-type=HISTORY_ADD order_type=SELL deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profi
 

こんにちは、Angevoyageurです。

簡単なEAをもう一度添付します。これは、それを実証する必要があります。これは、タイトなストップとターゲット(入力パラメータ)で注文を置き、各トランザクションをログに記録するだけです。

私は本当にあなたの助けに感謝します。

(おそらく、あなたはまた、あなたのエントリのトランザクションを表示することができます)

あなたはまた私にmt-serverのIPを与えることができますか?

ファイル:
tc_ea_trans.mq5  11 kb
 
chinaski:

こんにちは、Angevoyageurです。

簡単なEAをもう一度添付します。これは、それを実証する必要があります。これは、タイトなストップとターゲット(入力パラメータ)で注文を置き、各トランザクションをログに記録するだけです。

私は本当にあなたの助けに感謝します。

(おそらく、あなたはまた、あなたのエントリのトランザクションを表示することができます)

mt-serverのIPも教えていただけますか?

私はあなたがちょうど投稿したEAを使用しています。MQデモ、アクセスポイントはヨーロッパです。でバックテストしています。


私はログからランダムな抜粋を取る。

2013.05.15 21:54:11     Core 1  2013.05.01 20:02:15   take profit triggered buy 0.01 EURUSD 1.31751 sl: 1.31681 tp: 1.31821 [#107  sell 0.01 EURUSD at 1.31821]
2013.05.15 21:54:11     Core 1  2013.05.01 20:02:15   deal #107  sell 0.01 EURUSD at 1.31821 done (based on order #107)
2013.05.15 21:54:11     Core 1  2013.05.01 20:02:15   deal performed [#107  sell 0.01 EURUSD at 1.31821]
2013.05.15 21:54:11     Core 1  2013.05.01 20:02:15   order performed sell 0.01 at 1.31821 [#107  sell 0.01 EURUSD at 1.31821]
2013.05.15 21:54:11     Core 1  2013.05.01 20:02:15   requote 1.31823 / 1.31836 / 1.31823 (instant sell 0.01 EURUSD at 1.31836 sl: 1.31906 tp: 1.31766)
2013.05.15 21:54:11     Core 1  2013.05.01 20:02:15   CTrade::OrderSend: instant sell 0.01 EURUSD at 1.31836 sl: 1.31906 tp: 1.31766 [requote (1.31823/1.31836)]
2013.05.15 21:54:11     Core 1  2013.05.01 20:02:15   instant buy 0.01 EURUSD at 1.31840 sl: 1.31770 tp: 1.31910 (1.31827 / 1.31840 / 1.31827)
2013.05.15 21:54:11     Core 1  2013.05.01 20:02:15   deal #108  buy 0.01 EURUSD at 1.31840 done (based on order #108)
2013.05.15 21:54:11     Core 1  2013.05.01 20:02:15   deal performed [#108  buy 0.01 EURUSD at 1.31840]
2013.05.15 21:54:11     Core 1  2013.05.01 20:02:15   order performed buy 0.01 at 1.31840 [#108  buy 0.01 EURUSD at 1.31840]
2013.05.15 21:54:11     Core 1  2013.05.01 20:02:15   CTrade::OrderSend: instant buy 0.01 EURUSD at 1.31840 sl: 1.31770 tp: 1.31910 [done at 1.31840]
2013.05.15 21:54:11     Core 1  2013.05.01 20:02:15   trans=symbol=EURUSD price=1.31821 00 volume=0.01 sl=0.0000000 tp=0.0000000 order=107 deal=107 entry-type=IN trans-type=DEAL_ADD order_type=BUY deal_type=DEAL_TYPE_SELL type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profit
2013.05.15 21:54:11     Core 1  2013.05.01 20:02:15   trans=symbol=EURUSD price=1.3182100 volume=0.01 sl=0.0000000 tp=0.0000000 order=107 deal=0 entry-type=IN trans-type=ORDER_DELETE order_type=SELL deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 prof
2013.05.15 21:54:11     Core 1  2013.05.01 20:02:15   trans=symbol=EURUSD price=1.3182100 volume=0.00 sl=0.0000000 tp=0.0000000 order=107 deal=0 entry-type=IN trans-type=HISTORY_ADD order_type=SELL deal_type=DEAL_TYPE_BUY type_time=0 expiration=1970.01.01 00:00 price_trigger=0.0000000 profi

それで、あなたはまだSL/TPトリガーを検出する問題がある?

ファイル:
 
angevoyageur:

先ほど投稿されたEAを使っています。MQデモ、アクセスポイント欧州。でバックテストしています。


私はログからランダムな抜粋を取る。

それで、あなたはまだSL/TPトリガーを検出する問題があるのですか?

ああ、なるほど。昨日の私の実行では、そのような価格は与えられなかったと汗をかくことができました。私はバックテストログでこの価格のためのテキスト検索を行いました。

しかし、今、私はログエントリの後に、このトランザクションを見ることができます。

"テイクプロフィットトリガー"

を実行した後、この取引を見ることができます。

私はそれがかかるすべての時間をお詫び申し上げます。

 
chinaski:

ああ、なるほど。昨日の私のランでは、そのような価格は与えられなかったと思うことができました。私はバックテストのログでこの価格のテキスト検索を行いました。

しかし、今、私はログエントリの後に、このトランザクションを見ることができます。

...
ログはビューアーのもので、Strategy Tester Journal タブから直接読むと、逆の 順序で表示 されます。
 
angevoyageur:
私が提供したログはビューアからのもので、Strategy Tester Journalタブから直接ログを読むと、 逆の順序表示 されます。
私は通常、バックテストの ログタブからログファイルを開きますが、その場合、上から下に向かって表示されます。ということで、実は、価格を示すログは、取引が発生する前に書き込まれているのです。
 

こんにちは、Angevoyageurです。

"アクセスポイント ヨーロッパでのバックテスト:"

は、このサーバーの完全なIPを私に与えることができますか?

理由: