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

 
mladen:
if (add>0) { drawLine(totalLevels,current+diff+add,addLinesColor,addLinesStyle); drawLine(totalLevels,current+diff-add ,addLinesColor,addLinesStyle); }
を追加すると、すべての「基本」線の周囲に追加の線が描かれるようになります。

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

 

Alertのプログラミングで助けが必要

こんにちは、私はmql4プログラミングの 初心者です。

私は、新しい「オールインワン」アラームを作りたいと思っています。

私は、Fx MNT、Super Signal、CHT Value Chartをアラーム信号と一緒に持っています。

今、私はMNT、スーパーシグナル、バリューチャートとRSIが適切な場所にあるときに、1つのアラームを持ちたいと思っています。

どのようにコード化すればよいのでしょうか?既存のアラームパーツを使い、それらを1つの大きなコードにまとめることはできますか?

よろしくお願いします。

 
Slow Moe:
こんにちは、私は全体のML4プログラミングに新しいです。

新しい "オールインワン "アラームを作りたいのですが。

私は、Fx MNT、Super Signal、CHT Value Chartをアラームシグナルと一緒に持っています。

今、私はMNT、スーパーシグナル、バリューチャートとRSIが適切な場所にあるとき、1つのアラームを持ちたい。

どのようにコード化すればよいのでしょうか?既存のアラームパーツを使い、それらを1つの大きなコードにまとめることはできますか?

親切によろしくお願いします。

遅い

それは可能ですが、これらすべての指標からデータを取得するための「責任」を負うことになるコードは単純ではありません(特に、アラートがトリガーされるべきかどうかを調べるために呼び出されるすべての指標に外部パラメータを宣言する必要があるパラメータを 持つ部分がそうです)。

 

連続高値・安値引け

添付ファイルには、true/falseを選択することで組み込むことができる条件がいくつかあります。

もう一つの条件をtrue/falseで組み込みたいのですが、ロングで2連続高値引けがあるか?

ロングで2回連続の高値引けがあるか?

もしあれば、trueで有効な他の条件が揃っていれば、上向き矢印が出る。

ショートで2回連続の下降終値があるか?

もしあれば、trueが有効な他の条件が存在する場合、下向きの矢印が表示されます。

終値の数を変数にできないか?

どなたか、この追加条件をStoch_Indyインジケータにコード化していただけないでしょうか? ありがとうございました。

ファイル:
 
person77:
添付のファイルにはいくつかの条件があり、true/falseを選択することで含めることができます。

もう1つの条件をtrue/falseとして組み入れたい。

ロングで2回連続の高値引けがあるか?

もしあれば、trueで有効な他の条件が揃っていれば、上向き矢印が出る。

ショートで2回連続の下降終値があるか?

もしあれば、trueが有効な他の条件が存在する場合、下向きの矢印が表示されます。

終値の数を変数にできないか?

どなたか、この追加条件をStoch_Indyインジケータにコード化していただけないでしょうか? ありがとうございます。

人77

これを試してみてください

そのためにオプションUseConsecutiveCloseBarsを追加しました。単に終値だけでなく、そのバーで終値が始値より大きければ連続上昇、小さければ連続下降となるようにテストします。

ファイル:
 
mladen:
人77

これを試してみてください

そのためのオプションUseConsecutiveCloseBarsを追加しました。単に終値をテストするだけでなく、そのバーで終値が始値より大きくないと連続上昇にならないし、そのバーで始値より小さくないと連続下降にならない。

非常に素晴らしいmladen - 非常によく機能します。 ありがとうございます。

私が遭遇したいくつかの例では、C = Oを許可することは、大部分において有利です。

これを許可するように変更するか、いっそのこと、C = Oを許可するかどうかのオプションを設けていただけないでしょうか。

ファイル:
 
person77:

非常に素晴らしいmladen - 非常によく機能します。ありがとうございます。

私が遭遇した数少ない例では、C = Oを許容することは、概して好ましいことです。

これを許可するように変更するか、いっそのことC = Oを許可するかどうかのオプションを設けてもらえないでしょうか。

人物77

もう一つオプションが追加されました。AllowCloseEqualOpen.を追加しましたので、このオプションで制御 できるようになりました。

ファイル:
 

こんにちは、皆さん。

コーディングについて質問です。

この設定で一般的なチャートに移動平均を 描画することは可能でしょうか?

nCountedBars = IndicatorCounted();

dFactor = 2*3.14159/180.0;

mFactor = 10000.0;

 
cain82:
こんにちは、皆さん。

コーディングについて質問です。

この設定で一般的なチャートに移動平均を描画することは可能でしょうか?

nCountedBars = IndicatorCounted();

dFactor = 2*3.14159/180.0;

mFactor = 10000.0;

あなたの書いたもの(dFactorとmFactor)は、価格やバー番号に関係なく、すべて一定の値として評価されるので、チャート上に水平線が 描かれることになります。

 
mladen:
あなたが書いたもの(dFactorとmFactor)は、価格やバー番号に関係なく一定の値に評価されるので、チャート上に水平線が表示されることになります。

ご回答ありがとうございます。

しかし、このIndi hystogrammコードのように、一般的なチャート上にMAの角度線を表示するにはどうしたらよいのでしょうか?

//---- indicator settings

#property indicator_separate_window

#property indicator_buffers 3

#property indicator_color1 LimeGreen

#property indicator_color2 FireBrick

#property indicator_color3 Yellow

#property indicator_width1 2

#property indicator_width2 2

#property indicator_width3 2

//---- indicator parameters

extern int TimeFrame = 60;

extern int MAMode = 0;

extern int MAPeriod = 50;

extern int Price = 4;

extern double AngleTreshold = 0.25;

extern int StartMAShift = 2;

extern int EndMAShift = 0;

extern int MaxBars = 500;

string TF1;

//---- indicator buffers

double UpBuffer[];

double DownBuffer[];

double ZeroBuffer[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- 2 additional buffers are used for counting.

IndicatorBuffers(3);

//---- drawing settings

SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexStyle(1,DRAW_HISTOGRAM);

SetIndexStyle(2,DRAW_HISTOGRAM);

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2 );

//---- 3 indicator buffers mapping

if(!SetIndexBuffer(0,UpBuffer) &&

!SetIndexBuffer(1,DownBuffer) &&

!SetIndexBuffer(2,ZeroBuffer))

Print("cannot set indicator buffers!");

SetIndexLabel(0,"");

SetIndexLabel(1,"");

SetIndexLabel(2,"");

switch(TimeFrame)

{

case 1: TF1="M1"; break;

case 5: TF1="M5"; break;

case 15: TF1="M15"; break;

case 30: TF1="M30"; break;

case 60: TF1="H1"; break;

case 240: TF1="H4"; break;

case 1440: TF1="D1"; break;

case 10080: TF1="W1"; break;

case 43200: TF1="MN1"; break;

default: {TimeFrame = Period(); init(); return(0);}

}

IndicatorShortName("MAAngle MTF * "+TF1+" *");

//---- initialization done

return(0);

}

//+------------------------------------------------------------------+

//| The angle for EMA |

//+------------------------------------------------------------------+

int start()

{

double fEndMA, fStartMA;

double fAngle, mFactor, dFactor;

int nLimit, i;

int nCountedBars;

double angle;

int ShiftDif;

string Sym;

if (MAMode >= 4) MAMode = 0;

if(EndMAShift >= StartMAShift)

{

Print("Error: EndMAShift >= StartMAShift");

StartMAShift = 6;

EndMAShift = 0;

}

nCountedBars = IndicatorCounted();

dFactor = 2*3.14159/180.0;

mFactor = 10000.0;

Sym = StringSubstr(Symbol(),3,3);

if (Sym == "JPY") mFactor = 100.0;

ShiftDif = StartMAShift-EndMAShift;

mFactor /= ShiftDif;

//---- check for possible errors

if(nCountedBars<0) return(-1);

//---- last counted bar will be recounted

if(nCountedBars>0) nCountedBars--;

nLimit=Bars-nCountedBars;

nLimit=MathMax(nLimit,TimeFrame/Period());

nLimit=MathMin(nLimit,MaxBars );

//---- main loop

for(i=0; i<nLimit; i++)

{

int y = iBarShift(NULL,TimeFrame,Time);

if (TimeFrame<Period()) TimeFrame=Period();

fEndMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+EndMAShift);

fStartMA=iMA(NULL,TimeFrame,MAPeriod,0,MAMode,Price,y+StartMAShift);

// 10000.0 : Multiply by 10000 so that the fAngle is not too small

// for the indicator Window.

fAngle = mFactor * (fEndMA - fStartMA)/2.0;

//fAngle = MathArctan(fAngle)/dFactor;

DownBuffer = 0.0;

UpBuffer = 0.0;

ZeroBuffer = 0.0;

if(fAngle > AngleTreshold)

UpBuffer = fAngle;

else if (fAngle < -AngleTreshold)

DownBuffer = fAngle;

else ZeroBuffer = fAngle;

}

return(0);

}

//+------------------------------------------------------------------+