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

 
shtopr:
を追加する必要があります。

H1、M30、M15、M5、M1

3色目の色(両方の値が同じ範囲にあるとき)を指定するには、色相を修正する必要があります。

3色目の色(両方の値が同じ範囲にある場合)を指定するには、3色目の色を指定するためのオプションを追加するようにコードを修正する必要があります。

 
mladen:
これは、1つの列を使用するバージョンです。もし、3色目を希望する場合は、新しいオプションを追加する必要があります。

2分足のrenkoライブチャートで、上部に2本の緑のバーがあるだけで、すべてのペアでそれを使いましたが、正常ですか?

 
drunkpips:
2分足のrenkoライブチャートで、上部に2つの緑のバーがあるだけで、すべてのペアで疲れました。

renkoチャートは使っていません。

内蔵のインジケータ(iBEarsPower()とiBullsPower())を使用しているので、もしそれで何らかの問題があるとすれば、それはすでに内蔵のインジケータ自体に問題があることになります。

 
mladen:
3色目(両方の値が同じ範囲にある場合)を指定するには、3色目のオプションを追加するようにコードを修正する必要がある、ということです。

Ок.Спасибо!

 

mladenです。

投稿番号1874の'simple mtf'を勉強して遊んでいます。

注:MAのMAであり、MTFが可能です。

いくつか疑問があります。

このコードで何をやっても、'returnBars'が何をするのか、理解できないのです。

1.1. ターゲットタイムフレームの変更されたバーの数が必要かどうかを決定するのは何ですか、そしてなぜですか?

2.この行について。

returnBars = TimeFrame == "returnBars"; // 変化したバーの数が要求されているかどうかチェックする。

私は高度な教育を受けたプログラマーではありません。 この複合構文がわかりません。また、変数の型を混在させるルールも知りません。

文字列変数Timeframeがboolean returnBarsの値を取得しているように見えます。

そして、その値をreturnBarsに代入しているようです。??

returnBarsはbooleanなので、TimeFrameが0より大きい場合は'1'を代入し、そうでない場合は'0'を代入するのでしょうか?

3.インジケーターを高いTFに設定し、ライブ(順張り)で何本もテストしたり、Strategy testerで テストしています。 それを使っている行を削除しても、インジケータの行に変化はない。

if (returnBars) Comment("returnBars ",returnBars, " Tick ",Volume(0));

// if (returnBars) { ma1[0] = limit+1; return(0); }.

画面上のコメント行には、「returnBars 1」と表示されます。

どこで「1」の値を取得しているのかがわかりません。

if'の部分がないと、常に'0'と表示されます。

Init()に入れても同じ結果です。

Big Be

 
Big Be:
mladenです。

投稿番号1874の「simple mtf」を勉強して遊んでいます。

注:MAのMAであり、MTFが可能です。

いくつか質問があります。

コードで何をやっても、'returnBars'が何をするのか、理解できません。

1.1. ターゲットタイムフレームの変更されたバーの数が必要かどうかを決定するのは何ですか、そしてなぜですか?

2.この行について。

returnBars = TimeFrame == "returnBars"; // 変化したバーの数が要求されているかどうかチェックする。

私は高度な教育を受けたプログラマーではありません。この複合構文がわかりません。また、変数の型を混在させるルールも知りません。

文字列変数Timeframeがboolean returnBarsの値を取得しているように見えます。

そして、その値をreturnBarsに代入しているようです。??

returnBarsはbooleanなので、TimeFrameが0より大きい場合は'1'を代入し、そうでない場合は'0'を代入するのでしょうか?

3.インジケーターを高いTFに設定し、ライブ(順張り)で何本もテストしたり、Strategy testerでテストしています。それを使っている行を削除しても、インジケータの行に変化はない。

if (returnBars) Comment("returnBars",returnBars, "ティック",ボリューム(0));

// if (returnBars) { ma1[0] = limit+1; return(0); }.

画面上のコメント行には、「returnBars 1」と表示されます。

どこで「1」の値を取得しているのかがわかりません。

if'の部分がないと、常に'0'と表示されます。

Init()に入れても同じ結果です。

ビッグベー

Big Be

これを想像してみてください.

1.あなたは15分足チャートで作業しており、あなたのインジケータは1時間足のデータを表示しています。15分足チャートでは最後のティックで何本のバーが変化したか、1時間足チャートでは何本のバーが変化したか?それをチェック するのがReturn barsです。この数字は想定された値である必要はありません。(長い間チャートからアクセスしていない時間枠を選び、メタトレーダーがその時間枠のデータをダウンロードし始めるとどうなるかを見てください - 新しいバーがいくつダウンロードされたかを確認する必要があります。)

2.returnBars = TimeFrame == "returnBars "の場合。

1つの代入("=")と1つの論理比較("==")があります。これは、returnBarsが2つの文字列(TimeFrameと "returnBars")の論理比較の結果を受け取る必要があることを意味します。

3.3. return bars は、ブーリアン型変数である。0が "false"、1が "true "です。そのため、returnBarsに1が設定されています(returnBarsが "true "に設定されていることを意味します)。

______________

追記:C/C++のbooleanのルールであれば、0以外の値はtrueとみなされ、メタトレーダーの変数も同じようにテストできますが(例えばif(someDoubleValue)はsomeDoubleValueが0と異なるかどうかをテストします)、メタトレーダーは0と1をboolean型の変数に代入しています。

 

Mladen様

Poallnのインジケータのリペイントの仕方がいまいちつかめません。iRSI(NULL,0,RSI,PRICE_TYPICAL,i-8) や iCCI(NULL,0,CCI,PRICE_TYPICAL,i-8) が未来の値を意味することは知っていますが、最後のバーを計算するときに i-8 のデータがありません。

ゼロになるのでは?では、Pollanはどのようにリペイントするのでしょうか?

最高です。

 
-IXI-:
親愛なるムラデン

Poallnのインジケータのリペイントの仕方がいまいちつかめません。iRSI(NULL,0,RSI,PRICE_TYPICAL,i-8) や iCCI(NULL,0,CCI,PRICE_TYPICAL,i-8) が未来の値を意味することは知っていますが、最後のバーを計算するときに i-8 のデータがありません。

ゼロになるのでは?では、Pollanはどのようにリペイントするのでしょうか?

最高です。

IXI

現在のバーでは、そのバーの値0を取得します。最初の過去のバーでは、将来の値1個と0個を7個取得します。といった具合です。

新しいバーが形成されると、将来の値の結果に対してゼロを得ていたバーは、実際には実際の将来の結果を得ており、それらの値は、それらの "新しい "将来の値に従って変更されます。

 

このインジケータをJPYペアで動作させるには?

こんにちは。

このインディケータは、ラウンドナンバー ごとに線を引き、ラウンドナンバーの両側に15ピップずつ線を引きます。

しかし、JPYのペアでは動作しません。

このインディケータを動作させるためには、何を変更する必要があるのでしょうか?

#property indicator_chart_window

extern color UpperLineColor = Red;

extern color MainLineColor = Red;

extern color LowerLineColor = Red;

extern double HighOffset = 150;

extern double LowOffset = 150;

extern int LineStyle = 2;

extern string LineStyleInfo = "0=Solid,1=Dash,2=Dot,3=DashDot,4=DashDotDot";

double LineSpaceOld;

double Hoch;

double Tief;

bool FirstRun = true;

double LineSpace = 1.0; // 1 unit = 0.01 of basic value (e.g. 1 USD cent)

string LineText = "RoundNr ";

string LineText1 = "RoundNr1 ";

string LineText2 = "RoundNr2 ";

int deinit()

{

double AbSpace = 0.01*LineSpace;

double Oben = MathRound(110*Hoch)/100;

double Unten = MathRound(80*Tief)/100;

for(double i=0; i<=Oben; i+=AbSpace)

{

if(i<Unten) { continue; }

ObjectDelete(LineText+DoubleToStr(i,2));

ObjectDelete(LineText1+DoubleToStr(i,2));

ObjectDelete(LineText2+DoubleToStr(i,2));

}

return(0);

}

int start()

{

if(FirstRun)

{

Hoch = NormalizeDouble( High, 2 );

Tief = NormalizeDouble( Low, 2 );

FirstRun = false;

}

else if(LineSpace != LineSpaceOld)

{

deinit();

Hoch = NormalizeDouble( High, 2 );

Tief = NormalizeDouble( Low, 2 );

}

DrawLines();

LineSpaceOld = LineSpace;

return(0);

}

void DrawLines()

{

double AbSpace = 0.01*LineSpace;

double Oben = MathRound(110*Hoch)/100;

double Unten = MathRound(80*Tief)/100;

for(double i=0; i<=Oben; i+=AbSpace)

{

if(i<Unten) { continue; }

string StringNr = DoubleToStr(i,2); // 2 digits number in object name

if (ObjectFind(LineText+StringNr) != 0) // HLine not in main chartwindow

{

ObjectCreate(LineText+StringNr, OBJ_HLINE, 0, 0, i);

ObjectSet(LineText+StringNr, OBJPROP_STYLE, LineStyle);

ObjectSet(LineText+StringNr, OBJPROP_COLOR, MainLineColor);

}

else // Adjustments

{

ObjectSet(LineText+StringNr, OBJPROP_PRICE1, i);

ObjectSet(LineText+StringNr, OBJPROP_STYLE, LineStyle);

ObjectSet(LineText+StringNr, OBJPROP_COLOR, MainLineColor);

}

//#######################################################################

if(i<Unten) { continue; }

string StringNr1 = DoubleToStr(i,2); // 2 digits number in object name

if (ObjectFind(LineText1+StringNr1) != 0) // HLine not in main chartwindow

{

ObjectCreate(LineText1+StringNr1, OBJ_HLINE, 0, 0, i+(HighOffset/100000));

ObjectSet(LineText1+StringNr1, OBJPROP_STYLE, LineStyle);

ObjectSet(LineText1+StringNr1, OBJPROP_COLOR, UpperLineColor);

}

else // Adjustments

{

ObjectSet(LineText1+StringNr1, OBJPROP_PRICE1, i+(HighOffset/100000));

ObjectSet(LineText1+StringNr1, OBJPROP_STYLE, LineStyle);

ObjectSet(LineText1+StringNr1, OBJPROP_COLOR, UpperLineColor);

}

//#######################################################################

if(i<Unten) { continue; }

string StringNr2 = DoubleToStr(i,2); // 2 digits number in object name

if (ObjectFind(LineText2+StringNr2) != 0) // HLine not in main chartwindow

{

ObjectCreate(LineText2+StringNr2, OBJ_HLINE, 0, 0, i-(LowOffset/100000));

ObjectSet(LineText2+StringNr2, OBJPROP_STYLE, LineStyle);

ObjectSet(LineText2+StringNr2, OBJPROP_COLOR, LowerLineColor);

}

else // Adjustments

{

ObjectSet(LineText2+StringNr2, OBJPROP_PRICE1, i-(LowOffset/100000));

ObjectSet(LineText2+StringNr2, OBJPROP_STYLE, LineStyle);

ObjectSet(LineText2+StringNr2, OBJPROP_COLOR, LowerLineColor);

}

}

WindowRedraw();

}
 
Georgebaker:
こんにちは。

このインディでは、ラウンドナンバーごとにラインが引かれ、ラウンドナンバーの両側に15ピップずつラインが引かれます。

しかし、これはJPYのペアでは動作しません。

これを動作させるためには、何を変更する必要があるのでしょうか?

#property indicator_chart_window

extern color UpperLineColor = Red;

extern color MainLineColor = Red;

extern color LowerLineColor = Red;

extern double HighOffset = 150;

extern double LowOffset = 150;

extern int LineStyle = 2;

extern string LineStyleInfo = "0=Solid,1=Dash,2=Dot,3=DashDot,4=DashDotDot";

double LineSpaceOld;

double Hoch;

double Tief;

bool FirstRun = true;

double LineSpace = 1.0; // 1 unit = 0.01 of basic value (e.g. 1 USD cent)

string LineText = "RoundNr ";

string LineText1 = "RoundNr1 ";

string LineText2 = "RoundNr2 ";

int deinit()

{

double AbSpace = 0.01*LineSpace;

double Oben = MathRound(110*Hoch)/100;

double Unten = MathRound(80*Tief)/100;

for(double i=0; i<=Oben; i+=AbSpace)

{

if(i<Unten) { continue; }

ObjectDelete(LineText+DoubleToStr(i,2));

ObjectDelete(LineText1+DoubleToStr(i,2));

ObjectDelete(LineText2+DoubleToStr(i,2));

}

return(0);

}

int start()

{

if(FirstRun)

{

Hoch = NormalizeDouble( High, 2 );

Tief = NormalizeDouble( Low, 2 );

FirstRun = false;

}

else if(LineSpace != LineSpaceOld)

{

deinit();

Hoch = NormalizeDouble( High, 2 );

Tief = NormalizeDouble( Low, 2 );

}

DrawLines();

LineSpaceOld = LineSpace;

return(0);

}

void DrawLines()

{

double AbSpace = 0.01*LineSpace;

double Oben = MathRound(110*Hoch)/100;

double Unten = MathRound(80*Tief)/100;

for(double i=0; i<=Oben; i+=AbSpace)

{

if(i<Unten) { continue; }

string StringNr = DoubleToStr(i,2); // 2 digits number in object name

if (ObjectFind(LineText+StringNr) != 0) // HLine not in main chartwindow

{

ObjectCreate(LineText+StringNr, OBJ_HLINE, 0, 0, i);

ObjectSet(LineText+StringNr, OBJPROP_STYLE, LineStyle);

ObjectSet(LineText+StringNr, OBJPROP_COLOR, MainLineColor);

}

else // Adjustments

{

ObjectSet(LineText+StringNr, OBJPROP_PRICE1, i);

ObjectSet(LineText+StringNr, OBJPROP_STYLE, LineStyle);

ObjectSet(LineText+StringNr, OBJPROP_COLOR, MainLineColor);

}

//#######################################################################

if(i<Unten) { continue; }

string StringNr1 = DoubleToStr(i,2); // 2 digits number in object name

if (ObjectFind(LineText1+StringNr1) != 0) // HLine not in main chartwindow

{

ObjectCreate(LineText1+StringNr1, OBJ_HLINE, 0, 0, i+(HighOffset/100000));

ObjectSet(LineText1+StringNr1, OBJPROP_STYLE, LineStyle);

ObjectSet(LineText1+StringNr1, OBJPROP_COLOR, UpperLineColor);

}

else // Adjustments

{

ObjectSet(LineText1+StringNr1, OBJPROP_PRICE1, i+(HighOffset/100000));

ObjectSet(LineText1+StringNr1, OBJPROP_STYLE, LineStyle);

ObjectSet(LineText1+StringNr1, OBJPROP_COLOR, UpperLineColor);

}

//#######################################################################

if(i<Unten) { continue; }

string StringNr2 = DoubleToStr(i,2); // 2 digits number in object name

if (ObjectFind(LineText2+StringNr2) != 0) // HLine not in main chartwindow

{

ObjectCreate(LineText2+StringNr2, OBJ_HLINE, 0, 0, i-(LowOffset/100000));

ObjectSet(LineText2+StringNr2, OBJPROP_STYLE, LineStyle);

ObjectSet(LineText2+StringNr2, OBJPROP_COLOR, LowerLineColor);

}

else // Adjustments

{

ObjectSet(LineText2+StringNr2, OBJPROP_PRICE1, i-(LowOffset/100000));

ObjectSet(LineText2+StringNr2, OBJPROP_STYLE, LineStyle);

ObjectSet(LineText2+StringNr2, OBJPROP_COLOR, LowerLineColor);

}

}

WindowRedraw();

}

ジョージベーカー

https://www.mql5.com/en/forum/180648/page307 のようなインジケータをベースにしてみてはどうでしょうか?コーディングの手間が省けるかもしれません。