MQLエキスパートへの質問 - ページ 3

 
granit77 さん、ありがとうございました。
 
granit77:

そう、なんとなくですが、インジケータ名がhilo.mq4であることを考えると、こんな感じでしょうか。

extern int iR=3;
extern int SignalBar=1;
//.......
//---получение значения  HighBuffer 
double buy =  iCustom( NULL,0, "hilo",
                      iR,
                      0, // № буффера
                      SignalBar ); // № бара    
 
//---получение значения  LowBuffer
double sell =  iCustom( NULL,0, "hilo",
                      iR,
                      1, // № буффера
                      SignalBar ); // № бара

小さな問題インジケーターのアドバイザーが活躍します。でも...ショートトレードの実施でこそ!

すなわち、バッファ番号=1、ゼロと最初のバーの値で

if  (   (sell_0>Bid)  &&   (sell_1<=Bid))

販売条件として、動作に問題はありません。

しかし、Expert Advisorは買おうとしません!何が悪いのかわからない!?正しく条件を設定できたと思います。バッファ番号=0。

(  (buy0>=Ask)  &&      (buy1<Ask)  )

買いません!あるいは、ごく稀に「光」から購入することもあります。

ビジュアルモードチャート上のインジケータの ラインは正しく構築されているようですが......!


ここで何が問題になり得るのか。

 
rid:
granit77 です。

そう、なんとなくですが、インジケータ名がhilo.mq4であることを考えると、こんな感じでしょうか。

extern int iR=3;
extern int SignalBar=1;
//.......
//---получение значения  HighBuffer 
double buy =  iCustom( NULL,0, "hilo",
                      iR,
                      0, // № буффера
                      SignalBar ); // № бара    
 
//---получение значения  LowBuffer
double sell =  iCustom( NULL,0, "hilo",
                      iR,
                      1, // № буффера
                      SignalBar ); // № бара

小さな問題インジケーターのアドバイザーが活躍します。でも...ショートトレードの実施でこそ!

すなわち、バッファ番号=1、ゼロと最初のバーの値で

if  (   (sell_0>Bid)  &&   (sell_1<=Bid))

販売条件として、動作に問題はありません。

しかし、Expert Advisorは買おうとしません!何が悪いのかわからない!?正しく条件を設定できたと思います。バッファ番号=0。

(  (buy0>=Ask)  &&      (buy1<Ask)  )

買いません!あるいは、ごく稀に「光」から購入することもあります。

ビジュアルモードチャート上のインジケータのラインは正しく構築されているようですが......!


ここで問題になりそうなことは何でしょうか?

私もこの質問には興味があります))。

 

カスタムインジケータで作業していると、そのことに気がつきました。


// так РАБОТАЕТ !!!
int FATLsB=iCustom(NULL,0,"FATLs",0,0);
int FATLsS=iCustom(NULL,0,"FATLs",1,0);

// а вот так НЕТ ...
double FATLsB=iCustom(NULL,0,"FATLs",0,0);
double FATLsS=iCustom(NULL,0,"FATLs",1,0);


// если потом в коде есть сранвнение с 0 или 1, например
if (FATLsB==1) {CloseSell(); SetBuy(); }
 
kombat:

カスタムインジケータで作業していると、そのことに気がつきました。


// так РАБОТАЕТ !!!
int FATLsB=iCustom(NULL,0,"FATLs",0,0);
int FATLsS=iCustom(NULL,0,"FATLs",1,0);

// а вот так НЕТ ...
double FATLsB=iCustom(NULL,0,"FATLs",0,0);
double FATLsS=iCustom(NULL,0,"FATLs",1,0);


// если потом в коде есть сранвнение с 0 или 1, например
if (FATLsB==1) {CloseSell(); SetBuy(); }

最初のケースでは,代入操作の 前に対象となるint型への変換がある.したがって、比較条件は正しく動作します。

2番目のケースとして,浮動小数点数を指定された精度に丸める必要があります。

NormalizeDouble(double value, int digits)



 

すみません...

私の上記の例は、間違いに基づくものです。

FATLsの 指標によるリトレース可能な 価格に割り当てられたということでした。

EURUSDでは 気づかず、「矢印が出る」のをブル0とブル1と勘違いしてしまいました。


しかし、このヴァリアントでは、その状況を修正しました。


bool FATLsB=iCustom(NULL,0,"FATLs",0,0)>0;
bool FATLsS=iCustom(NULL,0,"FATLs",1,0)>0;
//--- открытие БАЙ закрытие СЕЛЛ ------------------
   if (FATLsB==1 && TotalBuy()==0) {CloseSell(); SetBuy(); }
 

皆さん、こんにちは。

アドバイスをお願いします。

チャート上に遅いMAと速いMAが交差しているとします。 最初の小節で

その後、さらに数小節を経過させる。

最後のМАがどのバーでクロスしたかを判断するにはどうしたらよいですか?

-----------------------------

どのように問題にアプローチすればいいのか、考えることすらできない。

 
Rita:

チャート上に遅いMAと速いMAが交差しているとします。 最初の小節で

それから、さらに何本かの小節が過ぎました。

過去のどのバーで、指定したMAの最後の交差が発生したかを判断するにはどうしたらよいですか?

あなたにとって、根本的な違いは何ですか?最初のバーでのクロスオーバーは、他のバーと同じように表示/検索することができます。バーの値を調べて分析するループ(例:ゼロバーからバーまで)を作成するのです。質問の意味がわからないのですが...。
 

現在のバーで知りたい。

MA_1とMA_2という2本のバーの最後の交差から何本経過したか。

このようなループをどのようにアレンジするのでしょうか?

if (MA_1>MA_2) {.

 
Rita:

現在のバーで知りたい。

2つのMA_1 MA_2の最後の交差から何バーが経過したか。

このサイクルはどのように行うのですか?

現在のバーからMAが入れ替わる瞬間まで、カウントしてください。