構造のルール プログラムの構成方法を学び、可能性、エラー、解決策などを探る。 - ページ 16

 
さすがに、人それぞれ、こうあるべきという仕組みや考え方があります。))
 
tol64:
さすがに、人それぞれ、こうあるべきという仕組みや考え方があります。))
その通りです。だから、どうせコンセンサスは得られないのだから、この議論はあきらめようということなのです。大規模プロジェクトの プログラミングの一般原則の議論に戻ることを提案します。
 
C-4:
ダメだ、ダメだ、またダメだ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!。その理屈だと、移動平均線を使ったシンプルなストラテジーフリップもMMということになる。なぜかというと、+1契約だったのが、-1になってしまったのです。

:)

私の同僚がEAの便利な構造(もちろんモジュール名は従来のものです)を説明しようとしました。 用語で遊ぶのではなく(これは重要ではありません)、この構造分割を確認してみてください。 かなり便利で生産的なものです。

写真:矢印は情報の動きを表しています。


 
C-4:
その通りです。ですから、どうせ意見がまとまらないのだから、この議論はやめた方がいいと思います。大規模プロジェクトのプログラミングの一般原則の議論に戻ることを提案します。
この原則のうち、トレーディングプロジェクトに 適用する場合(作成の基本ロジックまで)、議論されているようです。
 
MetaDriver:

...

カルティンコ 矢印は情報の動きを表しています。

その方が、思考がよりクリアになりますね。言葉がなくても、すべてがクリアになる。そうでないと、こうした延々と続くバタバタが、時にはとても消化しきれない。))そして、スキームの後に、適格な質問をすることができます。まだ持っていません。))

 
MetaDriver:

:)

私の同僚がEAの便利な構造(もちろんモジュール名は従来のものです)を説明しようとしました。 用語で遊ぶのではなく(これは重要ではありません)、この構造分割を確認してみてください。 かなり便利で生産的なものです。

矢印は情報の動きを表しています。

ええ、わかりますよ。ただ、複雑さだけはどこにも与えず、レコメンデーション修正者とマーケットドライバーに委ねています。この方式では、添削者はTSの取引履歴を掘り下げ、その実態を自ら理解する必要がある。それでもマーケットドライバーは、ストラテジーの現在のポジションを 正しく認識し、それを修正しなければならないのですが、ネッティングでは、これが容易ではありません。
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Позиционирование графика
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Позиционирование графика
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Позиционирование графика - Документация по MQL5
 
tol64:

その方が、より明確に物事を考えることができます。言葉がなくても、すべてがクリアになる。そうでないと、この延々と続くボヤキを消化するのが大変な時があるのです。))そして、スキームの後に、適格な質問をすることができます。まだ持っていません。))

絵を描かないとわからないのか、答えはこちらです :)

MetaDriver

:)

(もちろんモジュール名は相対的なものです。) 用語を弄るのではなく、この構造的な分け方を確認してみてください。 かなり便利で効率的な方法です。

矢印は情報の動きを表しています。


方向予報士が 必要なので、MM ブロックにあるのでしょうね。

それともまだマーケットドライバに あるのでしょうか?なぜなら、トロールするには現在のポーズが必要だからです。

私は、ボラティリティ予測器と保護ストップを修正 するためのもう一つのブロックを追加します。すなわち、(イミフ)TPまたはSLによる終了は通常のTSのための不可抗力であるので保護ストップです。

 
Urain:

つまり、絵を描かないとわからない課題なのか、という答えですね :)

トロールはどこにあるんですか?MM ブロックにあるんじゃないでしょうか?

結局、トロールには現在位置が必要なんですね

私は、ボラティリティ予測器と保護ストップを修正 するためのもう一つのブロックを追加します。

そして、もう少しブロックが増えると、戦略がぶつかり始める...。もし、最初の段階で、どのブロックに戦略の一部を記述し、他のブロックにどれを記述するかという絶対的に合理的な疑問があるならば、それはスキームが曖昧でないことを意味し、これはどのような問題が知られているかにつながるものである。
 

さて、回路図を描くようになったので、私が改良したものを紹介します。前作よりもクリアになることを期待しています。

ベネフィット

  • モジュールは2つだけです。
  • リンクが明確に定義され、曖昧さがない
  • 4つのメソッドを記述したクラスは、すべてトレーディングストラテジーになることができる
  • すべてのルールの説明は、常に取引戦略クラスという1つの場所に保存されています。プロジェクト全体から「揮発性モジュール」を探し出す必要はないのです。
  • 戦略状態の数は定数である。TSのルール上、これより大きくすることはできません。追加モジュールはありえないし、単に不要なだけだ
  • すべての共通エンティティは、コントロール*のベースクラスで記述することができ、またそうしなければならない。

*このように、すべてのストラテジーに共通する「取引終了時に終了する」という ルールをベースクラスで 記述することができます。このルールが設定されている場合、ベースクラスは、ポジションを閉じるサポートメソッドを再度呼び出すのではなく、一日の終わりに呼び出すことになります。また、基本戦略のルールに明記されていない場合でも、適切なタイミングでポジションがクローズされます。
 
C-4:

ええ、わかりますよ。ただ、複雑さだけはどこにも与えず、推薦調整者と市場推進者に委ねている。

それはいいとして、客観的な困難をなくすのではなく、新たな困難を生み出さないことが目標でした。


この方式によると、アジャスターはTSの取引履歴を調べ、その実態を把握する必要がある。

TSには状態(記憶)がないことはすでにわかったと思う。 補正者も履歴を掘る必要はない。あなたの要望でわざと入れたもので、なくても十分なのですが......。))


それでもマーケットドライバーは、現在の ストラテジーのポジションを 正しく認識し、それを調整しなければなりませんが、ネッティングではそれが容易ではありません。

:)

あなたの言葉を信じなければならないのですか?

double CMarketDriver::GetCurrentPos(string Sym)
  {
   if(!PosInfo.Select(Sym)) return 0; // DBL_MIN;
   double v=PosInfo.Volume();
   return(PosInfo.PositionType()==POSITION_TYPE_SELL) ? -v : v;
  }
bool CMarketDriver::Synhronize(const SymbolPos  &sp,int  &Err)
  {
   Err=0;
   bool res=true;
     {
      SymInfo.Name(sp.Sym);
      SymInfo.Refresh();
      double fp= TranslateLots(sp.Pos);  // Приводит рекомендованную в процентах от депо позу к рыночным лотам для данного инструмента
      double cp=GetCurrentPos(sp.Sym);
      double pos=fp-cp;   // вычисляет разницу текущей и рекомендованной позы
      if(pos>0.000001)
         res=Trade.Buy(NolrmalizeLots(pos),sp.Sym);  // "обналичивает разницу"
      if(pos<-0.000001)
         res=Trade.Sell(NolrmalizeLots(pos),sp.Sym);  // "обналичивает разницу"   
     }
   return res;
  }
理由: