記事"ユニバーサルEA:カスタムトレーリングストップ(その6)"についてのディスカッション

 

新しい記事 ユニバーサルEA:カスタムトレーリングストップ(その6) はパブリッシュされました:

The sixth part of the article about the universal Expert Advisor describes the use of the trailing stop feature. The article will guide you through how to create a custom trailing stop module using unified rules, as well as how to add it to the trading engine so that it would automatically manage positions.

SHOW_TRAILING_CLASSIC_PARAMSマクロが定義されている場合、トレーリングのパラメータは、コンパイル時にEAに統合されます。


図1。動的にリンクされたパラメータPointsModifyとSepModify

作者: Vasiliy Sokolov

 
今、すべてが一度に...ちょうどクール...動作します...。ありがとうございました。新しいバージョンが安定するまで、エラーが出ることは分かっていました。)
 
どうもありがとうございます!https://www.mql5.com/ja/articles/1683、MOEXでの取引のアプローチをエンジンに実装する予定はありますか?具体的には、市場の流動性を分析し、それに基づいて指定された偏差(最大スリッページ)でエントリーすることに興味があります。
Как обезопасить себя и своего эксперта при торговле на Московской бирже
Как обезопасить себя и своего эксперта при торговле на Московской бирже
  • 2015.06.18
  • Vasiliy Sokolov
  • www.mql5.com
В статье подробно описываются методы работы, призванные обеспечить безопасность совершения торговых операций на биржевых и малоликвидных рынках, на примере срочной секции Московской биржи. Статья является логическим продолжением статьи "Основы биржевого ценообразования на примере срочной секции Московской биржи", в которой даны теоретические основы биржевой торговли, но носит более практический характер.
 
igorbel:
どうもありがとうございます!教えてほしいのですが、https://www.mql5.com/ja/articles/1683 の記事で説明されているMOEXでの取引のアプローチをエンジンに実装する予定はありますか?具体的には、市場の流動性を分析し、それに基づいて指定された偏差(最大スリッページ)でエントリーすることに興味があります。
提案は興味深い。見てみましょう。
 
//+------------------------------------------------------------------+
//| 現在のマーケット・ポジションをクローズする。
//| コメントとコメントが等しい|
//+------------------------------------------------------------------+
bool CPosition::CloseAtMarket(string comment="")
  {
   if(!IsActive())
      return false;
   m_trade.PositionModify(m_id, 0.0, 0.0);
   ENUM_ACCOUNT_MARGIN_MODE mode=(ENUM_ACCOUNT_MARGIN_MODE)AccountInfoInteger(ACCOUNT_MARGIN_MODE);
   if(mode != ACCOUNT_MARGIN_MODE_RETAIL_HEDGING)
      return m_trade.PositionClose(m_symbol);
   return m_trade.PositionClose(m_id);
  }

なぜこの関数の m_trade.PositionModify(m_id, 0.0, 0.0) なのか教えてください。この操作のせいで、ログにInvalid Stops エラーが出ています。

 
igorbel:

なぜこの関数の m_trade.PositionModify(m_id, 0.0, 0.0) なのか教えてください。この操作のせいでログにInvalid Stopsのエラーが出ます。

これらは旧バージョンの初歩です。ご指摘ありがとうございます。
 

何も変更していないのに、ベースクラスを含む後続モジュールをコンパイルするとエラーが出る:

'CTrailing' - declaration without type  PositionMT5.mqh 48      4
'Trailing' - undeclared identifier      PositionMT5.mqh 73      20
'Trailing' - object pointer expected    PositionMT5.mqh 73      20
'Trailing' - object pointer expected    PositionMT5.mqh 74      14
 
bool CTrailingClassic::Modify(void)
  {

   if(CheckPointer(m_position)==POINTER_INVALID)
     {
      string text="Invalid position for current trailing-stop. Set position with 'SetPosition' method";
      CMessage *msg=new CMessage(MESSAGE_WARNING,__FUNCTION__,text);
      Log.AddMessage(msg);
      return false;
     }
   if(m_diff_extremum<=0.0)
     {
      string text="Set points trailing-stop with 'SetDiffExtremum' method";
      CMessage *msg=new CMessage(MESSAGE_WARNING,__FUNCTION__,text);
      Log.AddMessage(msg);
      return false;
     }
   double extremum=FindExtremum(m_position);
   if(extremum == 0.0)return false;
   double n_sl = 0.0;
   if(m_position.Direction()==POSITION_TYPE_BUY)
      n_sl=extremum-m_diff_extremum;
   else
      n_sl=extremum+m_diff_extremum;
   if(n_sl!=m_position.StopLossValue())
      return m_position.StopLossValue(n_sl);
   return false;
  }

ロング・ポジションの場合、新しいSLが現在価格より 下にあり、ショート・ポジションの場合、現在価格より上にあることをチェックしても損はないだろう。

 

こんにちは。記事をありがとうございます。

各取引のロットサイズはどのように調整できますか?私はそれが1ロットのみを購入する参照してください。


よろしくお願いします。

 

ソコロフさんへ、

とても興味深い記事ですが、残念ながら、コンピラー・エラーなしであなたのコードをインストールすることはできませんでした。9つのパーツすべてを試しましたが、無駄でした。

あなたのコードをインストールするための特別な方法はありますか?

ありがとうございました。

 
簡潔さはウィットの魂である。
受容、理解、正しい解釈、これ以上はほとんどない。残念ながら