コーディングのヘルプ - ページ 554

 

Mntiwana, Bar to Useに0を入れると、まだ開いているバーでシグナルを取得することになります(EAにとって危険です、IMHO)0より大きい場合は、EAは開いているバーから戻って閉じたバーからシグナルを取得します、したがってBarToUse = 2とすると、EAは2本戻ってチェック することになります。

 

こんにちは、mladenです...どうか私を助けてください...ıは投稿されましたが、あなたは見ることができないと思います...OK...ıはインジケータを持っています...ıはヒスト版が必要です、どうもありがとうございました。

ファイル:
trend.ex4  9 kb
trend.mq4  2 kb
 
aress:
hi mladen....please help me....ı was posted but ı guess you can't see... OK... ı have a got indicator ... ı need histo version.thank you very much.

アレス

インジケーターのオリジナル(デコンパイルされていない)ソースコードをお持ちですか?もしあれば、作業できるようにオリジナルのmq4ファイルを投稿してください。

_________________

PS: あなたはまた、これをチェックすることができますhttps://www.mql5.com/en/forum/174961/page4 私が見る限り、それはそれです。

 

こんにちは、皆さん。

私のコードを見てください。

このインジケータは、icustom関数で 別のインジケータを呼び出しています。

問題は、時々、シグナルの条件が満たされていないときでも、このインジケータは偽のサウンドアラートを生成することです。

このインジケータは偽のシグナルを発生させ、その偽のシグナルは矢印を表示しないことです。

どこに問題があるのかわかりません。私の限られた知識で)試してみましたが、成功しませんでした。

偽のアラートを停止させるにはどうしたらいいですか?矢印があるときだけアラートが鳴るようにするにはどうしたらいいですか?

助けてください。

ありがとうございます。

int start()

{

int counted_bars=IndicatorCounted();

//----

if(counted_bars>0) counted_bars--;

int limit=Bars-counted_bars;

int j;

for(int i=limit; i>=0; i--)

{

arr_up = EMPTY_VALUE; arr_dn = EMPTY_VALUE.j=i; arr_dn = EMPTY_VALUE;

j=i;

double var1 = 0;

double var2 = 0;

for (j = i; j <= i + 9; j++) var2 += MathAbs(High[j] - Low[j]);

var1 = var2 / 10.0;

double sellprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,signal,price,0,i);

double buyprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,signal,price,1,i);

静的 datetime LastAlert;

datetime curbar = Time[0];

if (buyprevious !=EMPTY_VALUE )

{

arr_up=iLow(Symbol(),0,i) - (var1/2);

DrawLine("EntryLine11",iHigh(Symbol(),0,i+1),EntryLineColor);

if ( LastAlert != curbar && !upalert){。

アラート(Symbol()," ",Period(), "BUY")。

upalert=true。

downalert=false。

LastAlert =curbar;

}

}

else if(sellprevious !=EMPTY_VALUE )

{

arr_dn=iHigh(Symbol(),0,i) + (var1/2);

DrawLine("EntryLine11",iLow(Symbol(),0,i+1),EntryLineColor);

if ( LastAlert != curbar && !downalert){。

アラート(Symbol()," ",Period(), "SELL")。

downalert=true。

upalert=false。

LastAlert = curbar;

}

}

}

 
luffy:
よろしくお願いします。

私のコードをご覧ください。

このインジケータは、icustom関数で別のインジケータを呼び出しています。

問題は、シグナルの条件が満たされていないときでも、このインジケータが偽のサウンドアラートを出すことがあることです。

このインジケータは偽のシグナルを発生させ、その偽のシグナルは矢印を表示しないのです。

どこに問題があるのかわかりません。私の限られた知識で)試してみましたが、成功しませんでした。

偽のアラートを停止させるにはどうしたらいいですか?矢印があるときだけアラートが鳴るようにするにはどうしたらいいですか?

助けてください。

ありがとうございます。

int start()

{

int counted_bars=IndicatorCounted();

//----

if(counted_bars>0) counted_bars--;

int limit=Bars-counted_bars;

int j;

for(int i=limit; i>=0; i--)

{

arr_up = EMPTY_VALUE; arr_dn = EMPTY_VALUE.j=i; arr_dn = EMPTY_VALUE;

j=i;

double var1 = 0;

double var2 = 0;

for (j = i; j <= i + 9; j++) var2 += MathAbs(High[j] - Low[j]);

var1 = var2 / 10.0;

double sellprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,signal,price,0,i);

double buyprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,signal,price,1,i);

静的 datetime LastAlert;

datetime curbar = Time[0];

if (buyprevious !=EMPTY_VALUE )

{

arr_up=iLow(Symbol(),0,i) - (var1/2);

DrawLine("EntryLine11",iHigh(Symbol(),0,i+1),EntryLineColor);

if ( LastAlert != curbar && !upalert){。

アラート(Symbol()," ",Period(), "BUY")。

upalert=true。

downalert=false。

LastAlert =curbar;

}

}

else if(sellprevious !=EMPTY_VALUE )

{

arr_dn=iHigh(Symbol(),0,i) + (var1/2);

DrawLine("EntryLine11",iLow(Symbol(),0,i+1),EntryLineColor);

if ( LastAlert != curbar && !downalert){。

アラート(Symbol()," ",Period(), "SELL")。

downalert=true。

upalert=false。

LastAlert = curbar;

}

}

}

ルフィ

テストできるように、呼び出されたインジケータも 掲載していただけませんか?

 
mrtools:
Mntiwana, Bar to Useに0を入れると、まだ開いているバーでシグナルを取得することになります(EAにとって危険です、IMHO)0より大きい場合、EAは開いたバーから戻って閉じたバーからシグナルを取得します、したがってBarToUse = 2とすると、EAは2バー遡ってチェックすることになります。

親愛なるMLADENとMRTOOLS。

......このEAの場合、どのバーを追加するのがより最適で適切でしょうか。遅いMA線が速いMA線と完全にクロスしたとき(どちらかの方法)......次のバーで取引が実行されるべきですが、クロス後に何バー後に取引が実行されるか、例えば最初のバーでのクロス後、2番目または3番目のバーでのクロス後、この方法でコーディングできますか。 写真を添付しますので質問をより良く説明して下さい、ありがとう。

よろしくお願いします。

ファイル:
7.png  35 kb
8.png  38 kb
 

インジケーターはこちらです。

ありがとうございます。

ファイル:
 
mrtools:
Mntiwanaさん、Bar to Useに0を入れると、まだ開いているバーのシグナルを取ることになります(EAにとって危険です、IMHO)0より大きいと、EAは開いたバーから戻って閉じたバーからシグナルを取ることになります、ですからBarToUse = 2とすると、EAは2バー遡ってチェックすることになります。

親愛なるMRTOOLS。

あなたが意味した......使用するバー= 2 ......クロス後2バー...ではない2 Nバー、あなたが書いたときBars BACK、私は混乱して、私の障害...私を修正してくださいありがとうございます。

よろしくお願いします。

 
mntiwana:
MRTOOLSさんへ。

あなたが意味した......使用するバー= 2 ......クロス後の2バー......ではない2 Nバー、あなたが書くときBars BACK、私は混乱して、私の障害...私を修正ください。

よろしくお願いします。

mntiwana

しかし、bars to use == 2 の場合、現在のバーから2バー後のクロスをチェック します。つまり、2バーの遅れがある場合

 
mladen:
mntiwana いや、しかし、使用するバー== 2の場合、現在のバーから2バー後のクロスをチェックすることになり、現在のバーでのクロスはチェックされません。つまり、2バーの遅延がある場合

親愛なるMLADEN。

ありがとうございます。

よろしくお願いします。

===================================================================

オリジナルの "シンプルMAクロスEA "のコード

//

#define _doNothing 0

#define _doBuy 1

#定義 _doSell 2

int start()

{

int doWhat = _doNothing;

double diffc = iMA(NULL,0,Ma1Period,0,Ma1Method,Ma1Price,BarToUse) -iMA(NULL,0,Ma2Period,0,Ma2Method,Ma2Price,BarToUse)とする。

double diffp = iMA(NULL,0,Ma1Period,0,Ma1Method,Ma1Price,BarToUse+1)-iMA(NULL,0,Ma2Period,0,Ma2Method,Ma2Price,BarToUse+1).のようになります。

if ((diffc*diffp)<0))

if (diffc>0)

doWhat = _doBuy;

else doWhat = _doSell;

if (doWhat==_doNothing) return(0);

//

================================================

このように変更

#define _doNothing 0

#define _doBuy 1

#define _doSell 2

int start()

{

int doWhat = _doNothing;

double diffc = iCustom(NULL,0, "Hullparabolic 2.1",PERIOD_CURRENT,Ma1Period,Ma1Price,2,0 ,BarToUse)(ハルパラボリック 2.1,Ma1Price,2,0,0,BarToUse)。

-iCustom(NULL,0, "Hull parabolic 2.1",PERIOD_CURRENT,Ma2Period,Ma2Price,2,0 ,0,BarToUse)。

double diffp = iCustom(NULL,0, "Hull parabolic 2.1",PERIOD_CURRENT,Ma1Period,Ma1Price,2,0 ,0,BarToUse==2))です。

-iCustom(NULL,0, "Hull parabolic 2.1",PERIOD_CURRENT,Ma2Period,Ma2Price,2,0 ,0,BarToUse==2).If(diffc*diff)は、2.0を意味します。

if ((diffc*diffp)<0))

if (diffc>0)

doWhat = _doBuy;

else doWhat = _doSell;

if (doWhat==_doNothing) return(0);

//

=====================================

ファイル:
9.png  108 kb