//================фильтр - начало схождения ===================if (FILTER_ ) { //если выключатель фильтра включен//------------------------------------------------ //задаем вычисление ценовых линий на втором бареdouble MA_11= (iMA(Symbol_1,Period(),per2,0,ma_method,Price,2)-
iMA(Symbol_1,Period(),per1,0,ma_method,Price,2)) ;
double MA_21= (iMA(Symbol_2,Period(),per2,0,ma_method,Price,2)-
iMA(Symbol_2,Period(),per1,0,ma_method,Price,2)) ;
double ДЕЛЬТА_MA_2 = MathAbs(MA_11 - MA_21);//разность между ценовыми линиями на 2 баре//if (ДЕЛЬТА_MA_2 >= ДЕЛЬТА_MA) // если линии начинают сходится, разрешаем вход
Trade_Filter2=true; else Trade_Filter2=false;
//-------------------------------------------------
} // выключатель фильтра включен//================== конец блока 2-го фильтра ======================
そして、こちらがエントリー条件そのもの。
if ( TradeDOWN==true && .... ) { //если условия соответствуют заданным if (Trade_Filter2==true || ! FILTER_ ) { // фильтр включен/выключен
..... открвываем позиции: продаем первый инструмент и покупаем второй
の続きです。
このような条件下でのアルゴリズムは以下のように実装されており、ここではフィルターそのものを紹介する。
そして、こちらがエントリー条件そのもの。
しかし、Expert Advisorはフィルターの条件を見ないようです!を気にすることなくポジションをオープンし続けます。
if(Trade_Filter2==true || ! FILTER_ ) { ...................。
その理由がわからない。オンラインポジションの開設を繰り返し監視した。しかし、フィルターが作動しない!?Expert Advisorには表示されません。どこが間違っているのか、教えてください。
そしてもう一つの質問。グローバル変数 に設定する正しい方法は何ですか(現時点では最初の選択肢です)。
bool Trade_Filter2=0; あるいは単に boolTrade_Filter2 とする。
の続きです。
...
Coment() で MA_11, MA_21, DELTA_MA_2 を出力し、何があるか見てみましょう。DELTA_MA_2 の後にComment() が挿入されています。
MACDは2つの異なるシンボルから比較され、それらは非常に異なる次元を持っている可能性があります。
コメントがあります。コメントは "Filter allows (or denies) entry")のように設定されています。
このように作りました。
目視で確認すると、線はまだ分岐しており、コメントには「フィルターが入力を禁止しています」と表示されているではありませんか。しかし、エントリーはまだ実行されています - EAはフィルタに注意を払いません。ツールの次元は同じか、(次元が異なる場合) - プログラムで係数を用いて同じになるように縮小する(これは上のコードには示していない、散らかさないようにするため))。それでいいんです!(笑
しかし、double DELTA_MA_2, MA_11, MA_21- は、以下のように宣言されている f-i Comment()
しかし、Trade_Filter2 はグローバル変数 で宣言されています!ということで、コメントではすべて正しくできていると思います
こんにちは。今日のmt4のアップデートの後、EAコードのコンパイルができない。コンパイラーから30個の変なエラーが出ている。
以下の行で突然エラーが表示されるのはなぜか、教えていただけませんか。
on_off' - 未宣言の識別子 Exp_ARBITR_2Line_Spread_002Mod.mq4 125 35のコードで表示されます。
on_off4' - 未宣言の識別子 Exp_ARBITR_2Line_Spread_002Mod.mq4 140 47
on_off41' - 未宣言の識別子 Exp_ARBITR_2Line_Spread_002Mod.mq4 142 47
そして、それをどう修正するか?
このようにコンパイルされるのでしょうか?
でも、こっちの方がいいんですよ。
私が正しくテレパシーしていれば、これはうまくいくはずです。