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

 
TEAMTRADER:
私はこのインディケータをあるスレッドからダウンロードしましたが、CCI-zonesやMa-zonesのインディケータよりはるかに優れています。

ゾーンインジケーターのように画面に表示させることは可能でしょうか?

CCI設定13にしていますが、簡単に可変設定インジケータにできるのであれば、それはそれでボーナスなのですが、非常に副次的な要望です。

Forex-TSDのインジケーターですが、mq4フォルダは一緒にありませんでした。

ありがとうございます。

TEAMTRADER

私が見た限りでは、cciではなくthv t3 trixです。thv trixのバリエーションをいくつか検索してみるといいと思います。

 

mladenさん、前日の高値と安値のラインをプロットするインジケータを添付しましたが、3日前の高値と安値をプロットする同じインジケータが必要です、助けてください。

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

//| Copyright © 2008, ledxep |

//| http://www.metaquotes.net/ |

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

#property copyright "Copyright © 2008, ledzep"

#property link "http://www.metaquotes.net/"

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Blue

//---- input parameters

double DayHigh,DayLow,DayHigh1,DayLow1;

int ObjectIdx;

int DayIdx;

int k;

string ObjName;

datetime StartTime;

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

//| Custom indicator initialization function |

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

int init()

{

return(0);

}

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

//| Deinitialization function |

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

int deinit()

{

ObjectsDeleteAll();

return(0);

}

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

//| Start function |

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

int start()

{

static bool first=true;

int i,counted_bars=IndicatorCounted();

double BarHour,BarMinute;

int WeekDay;

if(Bars<3) return(0);

i=Bars-3;

if(counted_bars==0 || first)

{

first=false;

while(i>=0)

{

TrendLine(StartTime,DayHigh1,Time,DayHigh1,Red);

TrendLine(StartTime,DayLow1,Time,DayLow1,Red);

if(High > DayHigh) DayHigh = High;

if(Low < DayLow) DayLow = Low;

if(TimeDay(Time) != TimeDay(Time))

{

DayHigh1=DayHigh;

DayLow1=DayLow;

DayHigh=Open;

DayLow=Open;

StartTime=Time;

}

i--;

}//while close

}

return(0);

}//start close

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

void TrendLine(datetime x1, double y1, datetime x2, double y2, color col)

{

ObjectIdx++;

ObjName="Line" + DoubleToStr(ObjectIdx,0);

ObjectCreate(ObjName, OBJ_TREND, 0, x1, y1, x2, y2);

ObjectSet(ObjName,OBJPROP_COLOR,col);

ObjectSet(ObjName,OBJPROP_RAY,0);

}

 
k3rn3l:
mladen, 私は前日の高値と安値のラインをプロットするインディケータを添付しています。しかし、私は3日前の高値と安値をプロットする同じインディケータが必要です。私を助けることができますか?事前にありがとうございます

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

//| Copyright © 2008, ledxep |

//| http://www.metaquotes.net/ |

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

#property copyright "Copyright © 2008, ledzep"

#property link "http://www.metaquotes.net/"

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Blue

//---- input parameters

double DayHigh,DayLow,DayHigh1,DayLow1;

int ObjectIdx;

int DayIdx;

int k;

string ObjName;

datetime StartTime;

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

//| Custom indicator initialization function |

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

int init()

{

return(0);

}

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

//| Deinitialization function |

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

int deinit()

{

ObjectsDeleteAll();

return(0);

}

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

//| Start function |

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

int start()

{

static bool first=true;

int i,counted_bars=IndicatorCounted();

double BarHour,BarMinute;

int WeekDay;

if(Bars<3) return(0);

i=Bars-3;

if(counted_bars==0 || first)

{

first=false;

while(i>=0)

{

TrendLine(StartTime,DayHigh1,Time,DayHigh1,Red);

TrendLine(StartTime,DayLow1,Time,DayLow1,Red);

if(High > DayHigh) DayHigh = High;

if(Low < DayLow) DayLow = Low;

if(TimeDay(Time) != TimeDay(Time))

{

DayHigh1=DayHigh;

DayLow1=DayLow;

DayHigh=Open;

DayLow=Open;

StartTime=Time;

}

i--;

}//while close

}

return(0);

}//start close

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

void TrendLine(datetime x1, double y1, datetime x2, double y2, color col)

{

ObjectIdx++;

ObjName="Line" + DoubleToStr(ObjectIdx,0);

ObjectCreate(ObjName, OBJ_TREND, 0, x1, y1, x2, y2);

ObjectSet(ObjName,OBJPROP_COLOR,col);

ObjectSet(ObjName,OBJPROP_RAY,0);

}

残念ながら、私は理解していません。

そのインジケータは、全履歴(チャートにある日数分)の前日の高値と安値を描画します。3日前の高値と安値をプロットする」とは、具体的にどういうことでしょうか?

 
mladen:
そのインジケータは、全履歴(チャートにある日数分)の前日の高値と安値を描画する、というのがよくわかりません。3日前の高値と安値を描画する」とは、具体的にどういう意味ですか?

毎日、前3日間の高値と安値を表示してほしいのですが。

 
k3rn3l:
説明しますと、毎日、過去3日間の最高値と最安値を表示させたいと思っています。

このようなものを試してみてください(これはオブジェクトではなくバッファを使用し、最高値と最安値に使用する日数を設定することができます)。

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 LimeGreen

#property indicator_color2 Red

extern int DaysForHighLow = 3;

double buffh[];

double buffl[];

//------------------------------------------------------------------

//

//------------------------------------------------------------------

int init()

{

SetIndexBuffer(0,buffh);

SetIndexBuffer(1,buffl);

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

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

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

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

{

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

buffh = iHigh(NULL,PERIOD_D1,iHighest(NULL,PERIOD_D1,MODE_HIGH,DaysForHighLow,y));

buffl = iLow(NULL,PERIOD_D1,iLowest(NULL,PERIOD_D1,MODE_LOW,DaysForHighLow,y));

}

return(0);

}
 
mladen:
次のような方法を試してみてください (この方法はオブジェクトではなくバッファを使用し、最高値と最安値に使用する日数を設定できます)
#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 LimeGreen

#property indicator_color2 Red

extern int DaysForHighLow = 3;

double buffh[];

double buffl[];

//------------------------------------------------------------------

//

//------------------------------------------------------------------

int init()

{

SetIndexBuffer(0,buffh);

SetIndexBuffer(1,buffl);

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

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

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

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

{

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

buffh = iHigh(NULL,PERIOD_D1,iHighest(NULL,PERIOD_D1,MODE_HIGH,DaysForHighLow,y));

buffl = iLow(NULL,PERIOD_D1,iLowest(NULL,PERIOD_D1,MODE_LOW,DaysForHighLow,y));

}

return(0);

}

例えば、PreviousHighDaily[1], PreviuosHighDaily[2], PreviousHighDaily[3], and same for low...のように、3日前の高値と安値を表示するという意味です。

 
k3rn3l:
例えば、PreviousHighDaily[1], PreviuosHighDaily[2], PreviousHighDaily[3], and same for low...のように、3日前の高値と安値のことです。

従来よりも検索がシンプルになる(関数 呼び出しが少なくなる)

このようにできます :

#property indicator_chart_window

#property indicator_buffers 6

#property indicator_color1 LimeGreen

#property indicator_color2 Red

#property indicator_color3 LimeGreen

#property indicator_color4 Red

#property indicator_color5 LimeGreen

#property indicator_color6 Red

#property indicator_width1 2

#property indicator_width2 2

#property indicator_style5 STYLE_DOT

#property indicator_style6 STYLE_DOT

double buffh1[];

double buffl1[];

double buffh2[];

double buffl2[];

double buffh3[];

double buffl3[];

//------------------------------------------------------------------

//

//------------------------------------------------------------------

int init()

{

SetIndexBuffer(0,buffh1);

SetIndexBuffer(1,buffl1);

SetIndexBuffer(2,buffh2);

SetIndexBuffer(3,buffl2);

SetIndexBuffer(4,buffh3);

SetIndexBuffer(5,buffl3);

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

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

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

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

{

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

buffh1 = iHigh(NULL,PERIOD_D1,y+1);

buffl1 = iLow(NULL,PERIOD_D1,y+1);

buffh2 = iHigh(NULL,PERIOD_D1,y+2);

buffl2 = iLow(NULL,PERIOD_D1,y+2);

buffh3 = iHigh(NULL,PERIOD_D1,y+3);

buffl3 = iLow(NULL,PERIOD_D1,y+3);

}

return(0);

}

追記:一番太い線は1日前、細い線は2日前、点線は3日前です。

 

コーディングのヘルプpls.........。

こんにちは、専門家の皆さん、どなたか最後の作業注文のTPを現在の注文と同じに自動修正する簡単なEAのコードを書くのを手伝ってくれませんか? 1つ以上の作業注文といくつかの保留注文を持って いるとします、保留注文が作業注文になったとき、私はEAが前の作業注文のTP(目標価格)を現在の注文に自動修正することを願っています、ありがとう・・・・・・。

 
jeffyap:
コーディングのヘルプpls............専門家の皆さん、こんにちは。どなたか、最後の作業注文のTPを現在の注文と同じに自動修正する簡単なEAのコーディングを手伝っていただけませんか? 1つ以上の作業注文といくつかの保留注文を持っているとしましょう、保留注文が作業注文になったとき、私はEAが自動的に前の作業注文のTP(目標価格)を現在の注文に修正すると希望します、ありがとう...pls.open。

なぜ、すべての注文に通常のトレーリングストップを使用しないのですか?そうすれば、新しい注文を出すことなく、最終的に均等化されます(複数の注文がある場合)。

 

こんにちは、Mladenです。

もし、2つの安値の間のバーをカウントしたい場合、日曜日の23:00から00:00のバーを避けるにはどうしたらいいでしょうか?

なぜなら、4時間足チャートにはそのバーがあり、1時間しか続かないからです...そして、それは日足チャートにも現れます。

よろしくお願いします。