StopLimit - ページ 6

 

ブレイク後、翌日の日中立会のオープニングで利用できるプライススクイーズ。
そんな感じのスクイーズです、開場時に。
唯一の混乱は、なぜ買値で執行されなかったかということだ。
テスターのデプスゲージの相場が嘘か、相場が曲がっているのではないかという疑惑があるのです。
リアルティクによるシミュレーションが選択されていますか?

実際の取引では、マーケットオープンから最初の1~5分は見逃されるのが普通です。
そうでなければ、最初の利用可能な価格で、そのようなスクイーズがあり、狂ったスプレッドを持つボラティリティが発生します。
そのため、マーケットが閉まる前、例えば23.40になったら、すべての逆指値注文を解除します。
そして、スプレッドをコントロールしながら10.01以降の注文を可能にする。

昨日出した逆指値注文が、流動性のないマーケットオープンの時間にぶつかってしまう。
なぜ、100ティックという制限を設けたのですか?5ティックの指値をしてエントリーする。


 
Dmitry Fedoseev:

だから変な結論を出してしまうんですね、怠慢から。私のためではなく、あなたが理解するためです。

チャート上の最後の価格は、12月2日23:48でした。ログを見ると、3日の10時に注文が実行されています。 これは何でしょうか?

もう一度言いますが、私はそれを必要としません。本当に理解していないのか、それともフリをしているだけなのか?

12月2日23:48のチャートは最終価格ではなくタイムライン、それが端末の仕組み )))))))


 
Sergey Chalyshev:

改めて考えると、これは必要ない、ずっと前から理解していたことだ。本当に理解していないのか、それともフリをしているだけなのか?

12月2日のチャートで23:48は最終価格ではなく、タイムラインです、これが端末の仕組みです ))))))))


23:48は価格ではない、という非常に深い表現です。

まあ...行ってきます...もう、あなたの話題には口出ししないようにします。

 
Dmitry Fedoseev:

23:48は価格ではない、という非常に深い表現です。

まあ...行ってきます...もう、あなたのスレッドに干渉しないようにします。

ディミトリ、あまり迷走して事件に干渉しないように ))

あなたは時々助けてくれますし、個人的にはいくつかの問題を理解するのに役立っています。

私の取引口座へのログインとパスワードを教えてほしいのですが?ただし、排水量を多くしないこと、パスワードを変更しないことが条件です。

 
Sergey Chalyshev:

ディミトリ、あまり迷わず、事件に介入してください ))

あなたは時々助けてくれますし、個人的にはいくつかの問題を理解するのに役立っています。

私の取引口座へのログインとパスワードを教えてほしいのですが?ただし、排水量を多くしないこと、パスワードを変更しないことが条件です。

ええ、私もテスターで何度か注文してみようと思います。

 
Dmitry Fedoseev:

ええ、私もテスターで何度か注文を試してみますね。

直筆で書く

 
Sergey Chalyshev:

どうやら誰も使っていないようです。

存在しない価格で注文が開始される。

簡単な例で確認することができます。

//+------------------------------------------------------------------+
//|                                               StopLimit_Test.mq5 |
//+------------------------------------------------------------------+
#include <Trade\Trade.mqh>
CTrade trade;

input int Deviation = 100;
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlTick tick;
   SymbolInfoTick(_Symbol,tick);
   trade.SetTypeFilling(ORDER_FILLING_RETURN);
   double ticksise=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE);

   if(OrdersTotal()==0)
      trade.OrderOpen(
         _Symbol,                      // символ
         ORDER_TYPE_BUY_STOP_LIMIT,    // тип ордера
         1.0,                          // объем ордера
         tick.ask+Deviation*ticksise,  // цена исполнения
         tick.ask+10*ticksise,         // цена стоплимита
         0,                            // цена stop loss
         0                             // цена take profit
      );
  }
//+------------------------------------------------------------------+

そして、ここが実際の問題なのですが、stop_price と limit_price がごっちゃになっています。実は、limit_priceのパラメータが最初に混ざって、その後に価格が混ざっているのです。 したがって、buy-stop-limit を設定する場合、価格は limit_price よりも高くなければなりません。しかし、逆に引用元のコードでは、最初のトリガーは終値tick.ask+10*ticksiseで発生し、バイライトがその上のどこか(市場価格より上)に表示されてすぐにトリガーされるのです。

しかし、テスターではテスト期間の最初に価格が下がってしまうので、stoplimitで確認したところ、このようなコードでも問題なく動作しました。

void OnTick()
  {

   static int x=0;
   
   if(x==1)return;
   
   x=1;
  

   MqlTick tick;
   SymbolInfoTick(_Symbol,tick);
   trade.SetTypeFilling(ORDER_FILLING_RETURN);
   double ticksise=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE);

   if(OrdersTotal()==0){
      Comment(GetTickCount()," ",ticksise);
      trade.OrderOpen(
         _Symbol,                      // символ
         ORDER_TYPE_SELL_STOP_LIMIT,    // тип ордера
         1.0,                          // объем ордера
         tick.bid-100*ticksise,  // цена исполнения
         tick.bid-1000*ticksise,         // цена стоплимита
         0,                            // цена stop loss
         0                             // цена take profit
      );
   }

  }

最初のトリガーの後、リミットが表示されます。

 
Dmitry Fedoseev:

実際の問題はここからで、ストップ安とリミット安が混在して いるのです。実際には、limit_price パラメータが先にあり、その後に価格が表示されます。したがって、buy-stop-limit を設定する場合、価格は limit_price よりも高く なければなりません。しかし、逆に引用元のコードでは、最初のトリガーは終値tick.ask+10*ticksiseで発生し、バイライトがその上のどこか(市場価格より上)に 表示されてすぐにトリガー されるのです。

しかし、テスターではテスト期間の最初に価格が下がってしまうので、stoplimitで確認したところ、このようなコードでも問題なく動作することがわかりました。

最初のトリガーの後、リミットが表示されます。

私の例では何も混同していません。BuyLimitはAskより高く設定されており、BuyLimitで指定された価格ではなくAskで執行されるはずです。

説明するのに疲れて、もう一度枝を全部読んでください。

StopLimitを設定せずに、BuyLimitをAskより上に設定してみてください。

ORDER_TYPE_BUY_STOP_LIMITをORDER_TYPE_BUY_LIMITに 置き換えるだけです。

BuyLimitはAsk価格で十分にトリガーされ、BuyStopLimitの場合はBuyLimitで 指定された価格で十分にトリガーされます。

 
Sergey Chalyshev:

私の例では何も混同していません。BuyLimitはAskより上に設定されており、BuyLimitで指定した価格ではなく、Askで約定するはずです。

説明するのに疲れて、もう一度枝を全部読んでください。

StopLimitを設定せずに、BuyLimitをAskより上に設定してみてください。

ORDER_TYPE_BUY_STOP_LIMITを ORDER_TYPE_BUY_LIMITに 置き換えるだけです。

BuyLimitはAsk価格で十分にトリガーされ、BuyStopLimitの場合はBuyLimitで 指定された価格で十分にトリガーされます。

これではっきりしました。

 

FXでもテスターで逆指値注文を確認することができます。実行」=「Exchange」に設定すればよい。



買い指値は以下のように確認しました。指値注文の価格をアクティベーション価格より悪く設定しました。注文は、起動時に市場価格(アスク価格)で始まりました。ということで、テスターでの機能は動作するようです。