すべてのペアを現在の測定器で正規化するのですか?
dsma2 = NormalizeDouble(SMA[2] - SMA[3], _Digits); // サイト2-3のMA dsma1 = NormalizeDouble(SMA[1] - SMA[2], _Digits); // 第1-2サイトのMA
Valmars:
すべてのペアを現在の測定器で正規化するのですか?
また、警告が出ないようにするにはどうすればよいでしょうか?
オリジナル・バージョンではこのようになっています:
int Digits_ = SymbolInfoInteger(Symbol_, SYMBOL_DIGITS) + 4;
dsma2 = NormalizeDouble(SMA[2] - SMA[3], Digits_); // サイト2-3のMA
dsma1 = NormalizeDouble(SMA[1] - SMA[2], Digits_); // 第1-2サイトのMA
AM2:
警告を出さない正しい実装方法は?
原文ではこうなっています:
4がどう関係するのか?論理的にはこうあるべきだ
int Digits_ = SymbolInfoInteger(Symbol_, SYMBOL_DIGITS); dsma2 = NormalizeDouble(SMA[2] - SMA[3], Digits_); // サイト2-3のMA dsma1 = NormalizeDouble(SMA[1] - SMA[2], Digits_); // 第1-2サイトのMA
しかし、同じセットアップで複数のペアを取引する場合、マルチ・インストゥルメントの意味がなくなるのでは?ドローダウンが同時期に発生することが予想され、それが問題になるかもしれません。残念ながら、すべての通貨ペアは相関しているので、これは避けられないかもしれません。実際、私はEUR/USDGBP/USDのペアも 一緒にトレードしていますが、一方ではトレンドフォロワーを使い、もう一方ではリバーサル、トップス・アンド・ボトムズタイプのEAを使っています。
sergey1294:
ありがとう!
警告を受けたくない場合は、このように変換する必要があります。
bdwezensky:
request.volume = Money_M();
このEAは整理されたコードの素晴らしい例で、コメントも素晴らしいです。 しかし、Money_M()というロットサイズ関数に関して1つ質問があります。 この背後にある決定木は何ですか?
サポートサイトを検索してみましたが、参照は見つからず、関連するクラスにもリンクされていないようでした。
double Money_M() { double Lots=AccountInfoDouble(ACCOUNT_FREEMARGIN)/100000*10; Lots=MathMin(5,MathMax(0.1,Lots)); if(Lots<0.1) Lots=NormalizeDouble(Lots,2); else { if(Lots<1) Lots=NormalizeDouble(Lots,1); else Lots=NormalizeDouble(Lots,0); } return(Lots); }
この関数は、取引ロットのサイズを計算するために使用されます。
double Lots=AccountInfoDouble(ACCOUNT_FREEMARGIN)/100000*10;
この文字列では、計算された取引ロットのサイズが表示されます。計算はフリーマネー(ACCOUNT_FREEMARGIN)で行われます。リスク = 利用可能な自由資金の10%。
Lots=MathMin(5,MathMax(0.1,Lots));この行では、取引ロットの正規化が実行されます。0.1 <= ロット <= 5.0
取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
Multik:
このエキスパートアドバイザーはCreating anエキスパートアドバイザー, which Trades on a Number of Instrumentsの記事で示されたアイディアに基づいています。
これはEURUSDとGBPUSDで取引されています。 MAが上向きの時に買い、MAが下向きの時に売ります。作者: Andrew Kornishkin