วันนี้ เลือกเอา ADX แบบเดิมๆ มาพัฒนาต่อยอดนิดหน่อย ให้มันสามารถบอกค่า ได้ทุก Time Frame รูปแบบที่ได้มาคือถ้าเราอยู่ใน TF ที่เล็กๆ เราจะได้อ่านค่าต่างๆ ของ ADX ใน TF ที่ใหญ่กว่าได้ (แต่กรณี TF ที่ใหญ่ เราจะไม่สามารถอ่านค่า TF ที่เล็กกว่าได้นะ) แจ่มเหมือนกัน ดูง่ายดี
อันนี้ code ชุดนี้
_SECTION_BEGIN("ADX");
range = Param("Periods", 13, 2, 200, 1 );
Color = IIf(ROC(ADX(range),1) > 0, colorYellow,colorWhite);
Plot( ADX(range), _DEFAULT_NAME(), Color , ParamStyle("ADX style", styleThick ) );
Plot( PDI(range), "+DI", ParamColor( "+DI color", colorBrightGreen), styleLine );
Plot( MDI(range), "-DI", ParamColor( "-DI color", colorRed ), styleLine );
uptrend=ROC(ADX(13),1)> 5 AND ADX(13) > 15 AND PDI(13) > MDI(13) AND Signal()<MACD();
downtrend=ROC(ADX(13),1) > 5 AND ADX(13) > 15 AND PDI(13) < MDI(13) AND Signal()>MACD();
sideway = ROC(ADX(13),1) <=5;
Plot( 4, /* defines the height of the ribbon in percent of pane width
*/"ribbon",
IIf( uptrend, colorBrightGreen, IIf( downtrend, colorRed, IIf(sideway,colorLightGrey,colorDefault ))),styleOwnScale|styleArea|styleNoLabel, -0.5, 100 );
//Magfied Market Price
GfxSetTextAlign( 6 );// center alignment
fse=Param("Font Sizee",18,11,100,1);
GfxSelectFont("Times New Roman", fse, 700, True );
GfxSetBkMode( colorGold );
GfxSetTextColor( ParamColor("Color",colorGold) );
Hora=Param("Horizontal Positiona",420,1,2000,1);
Vera=Param("Vertical Positiona",1,1,1000,1);
MyADX = ROC(ADX(range),1,1.2);
MyMDI = ROC(MDI(range),1,1.2);
bi = BarIndex();
ii = SelectedValue( bi ) - bi[ 0 ];
if(MyADX[ii]>10){
GfxTextOut("("+Prec(MyADX,2) +"%) ("+Prec(MyMDI,2)+"%)", Hora , Vera+45 );
}
GfxSetTextAlign( 6 );// center alignment
_SECTION_END();
_SECTION_BEGIN("Trending MACD+PDI Ribbon");
uptrend=ROC(ADX(13),1)> 0 AND PDI(13) > MDI(13) AND Signal()<MACD();
downtrend=ROC(ADX(13),1) <= 0 AND PDI(13) < MDI(13) AND Signal()>MACD();
Plot( 5, /* defines the height of the ribbon in percent of pane width
*/"ribbon",
IIf( uptrend, colorGreen, IIf( downtrend, 0, 0 )), /* choose color */
styleOwnScale|styleArea|styleNoLabel, -0.5, 100 );
_SECTION_END();
Plot( 60, "60", colorPaleBlue,styleDashed );
Plot( 40, "40", colorPaleBlue,styleDashed );
Plot( 30, "30", colorGreen,styleDashed );
Plot( 20, "20", colorPaleBlue,styleDashed );
//START Multi Time Frame ***********************************************************************************************************************************************
TimeFrameSet( in1Minute );
uptrendm01 = ROC(ADX(13),1)> 5 AND Ref(ROC(ADX(13),1),-1) > 4 AND ADX(13) > 15 AND PDI(13) > MDI(13) AND Signal()<MACD();
downtrendm01= ROC(ADX(13),1)> 5 AND Ref(ROC(ADX(13),1),-1) > 4 AND ADX(13) > 15 AND PDI(13) < MDI(13) AND Signal() > MACD();
sidewaym01 = ROC(ADX(13),1) <=5;
ADXm01 = ADX(13);
ROCADXm01 = ROC(ADX(13),1);
TimeFrameRestore(); // restore time frame to original ***********************************************************************************************************************************************
TimeFrameSet( in5Minute );
uptrendm05 = ROC(ADX(13),1)> 5 AND Ref(ROC(ADX(13),1),-1) > 4 AND ADX(13) > 15 AND PDI(13) > MDI(13) AND Signal()<MACD();
downtrendm05= ROC(ADX(13),1)> 5 AND Ref(ROC(ADX(13),1),-1) > 4 AND ADX(13) > 15 AND PDI(13) < MDI(13) AND Signal() > MACD();
sidewaym05 = ROC(ADX(13),1) <=5;
ADXm05 = ADX(13);
ROCADXm05 = ROC(ADX(13),1);
TimeFrameRestore(); // restore time frame to original ***********************************************************************************************************************************************
TimeFrameSet( in15Minute );
uptrendm15 = ROC(ADX(13),1)> 5 AND Ref(ROC(ADX(13),1),-1) > 4 AND ADX(13) > 15 AND PDI(13) > MDI(13) AND Signal()<MACD();
downtrendm15= ROC(ADX(13),1)> 5 AND Ref(ROC(ADX(13),1),-1) > 4 AND ADX(13) > 15 AND PDI(13) < MDI(13) AND Signal() > MACD();
sidewaym15 = ROC(ADX(13),1) <=5;
ADXm15 = ADX(13);
ROCADXm15 = ROC(ADX(13),1);
TimeFrameRestore(); // restore time frame to original ***********************************************************************************************************************************************
TimeFrameSet( 2*in15Minute );
uptrendm30 = ROC(ADX(13),1)> 5 AND Ref(ROC(ADX(13),1),-1) > 4 AND ADX(13) > 15 AND PDI(13) > MDI(13) AND Signal()<MACD();
downtrendm30= ROC(ADX(13),1)> 5 AND Ref(ROC(ADX(13),1),-1) > 4 AND ADX(13) > 15 AND PDI(13) < MDI(13) AND Signal() > MACD();
sidewaym30 = ROC(ADX(13),1) <=5;
ADXm30 = ADX(13);
ROCADXm30 = ROC(ADX(13),1);
TimeFrameRestore(); // restore time frame to original ***********************************************************************************************************************************************
TimeFrameSet( inHourly );
uptrendm60 = ROC(ADX(13),1)> 5 AND Ref(ROC(ADX(13),1),-1) > 4 AND ADX(13) > 15 AND PDI(13) > MDI(13) AND Signal()<MACD();
downtrendm60= ROC(ADX(13),1)> 5 AND Ref(ROC(ADX(13),1),-1) > 4 AND ADX(13) > 15 AND PDI(13) < MDI(13) AND Signal() > MACD();
sidewaym60 = ROC(ADX(13),1) <=5;
ADXm60 = ADX(13);
ROCADXm60 = ROC(ADX(13),1);
TimeFrameRestore(); // restore time frame to original ***********************************************************************************************************************************************
TimeFrameSet( 2*inHourly );
uptrendm120 = ROC(ADX(13),1)> 5 AND Ref(ROC(ADX(13),1),-1) > 4 AND ADX(13) > 15 AND PDI(13) > MDI(13) AND Signal()<MACD();
downtrendm120= ROC(ADX(13),1)> 5 AND Ref(ROC(ADX(13),1),-1) > 4 AND ADX(13) > 15 AND PDI(13) < MDI(13) AND Signal() > MACD();
sidewaym120 = ROC(ADX(13),1) <=5;
ADXm120 = ADX(13);
ROCADXm120 = ROC(ADX(13),1);
TimeFrameRestore(); // restore time frame to original ***********************************************************************************************************************************************
TimeFrameSet( 4*inHourly );
uptrendm240 = ROC(ADX(13),1)> 5 AND Ref(ROC(ADX(13),1),-1) > 4 AND ADX(13) > 15 AND PDI(13) > MDI(13) AND Signal()<MACD();
downtrendm240= ROC(ADX(13),1)> 5 AND Ref(ROC(ADX(13),1),-1) > 4 AND ADX(13) > 15 AND PDI(13) < MDI(13) AND Signal() > MACD();
sidewaym240 = ROC(ADX(13),1) <=5;
ADXm240 = ADX(13);
ROCADXm240 = ROC(ADX(13),1);
TimeFrameRestore(); // restore time frame to original ***********************************************************************************************************************************************
TimeFrameSet( inDaily );
uptrendmDaily = ROC(ADX(13),1)> 5 AND Ref(ROC(ADX(13),1),-1) > 4 AND ADX(13) > 15 AND PDI(13) > MDI(13) AND Signal()<MACD();
downtrendmDaily= ROC(ADX(13),1)> 5 AND Ref(ROC(ADX(13),1),-1) > 4 AND ADX(13) > 15 AND PDI(13) < MDI(13) AND Signal() > MACD();
sidewaymDaily = ROC(ADX(13),1) <=5;
ADXmDaily = ADX(13);
ROCADXmDaily = ROC(ADX(13),1);
TimeFrameRestore(); // restore time frame to original ***********************************************************************************************************************************************
Title = "ADX PDI MDI Indicator : "+ EncodeColor(colorBrightGreen) + Name() + " "
+ EncodeColor(colorGreen) + "+DI=" +EncodeColor(colorWhite) + WriteVal(PDI(range),1.0) + " "
+ EncodeColor(colorGreen) + "%G=" +EncodeColor(colorWhite) + WriteVal(ROC(PDI(range),1,1.2)) + " "
+ EncodeColor(colorRed) +"-DI=" +EncodeColor(colorWhite) + WriteVal(MDI(range),1.0) + " "
+ EncodeColor(colorRed) + "%G=" +EncodeColor(colorWhite) + WriteVal(ROC(MDI(range),1,1.2))+ " "
+ EncodeColor(colorYellow) + "ADX(13)=" +EncodeColor(colorWhite) + WriteVal(ADX(13),1.0) + " "
+ EncodeColor(colorYellow) + "%G=" +EncodeColor(colorWhite) + WriteVal(ROC(ADX(range),1,1.2))+ " "
+ EncodeColor(colorYellow) + "\n TFm01=" + EncodeColor(colorGreen) +WriteIf(uptrendm01 ," UpTrend" ," ")+ EncodeColor(colorRed) + WriteIf(downtrendm01," Down Trend" ," " )+ EncodeColor(colorPink)
+WriteIf(sidewaym01 ,"Side Way" ," " ) + EncodeColor(colorYellow) + " ADX :" + EncodeColor(colorWhite)+ WriteVal(ADXm01,1.0) + EncodeColor(colorYellow)+ " %G ="+ EncodeColor(colorWhite)+ WriteVal(ROCADXm01,1.0)
+ EncodeColor(colorYellow) + "\n TFm05=" + EncodeColor(colorGreen) +WriteIf(uptrendm05 ,"UpTrend" ," ")+ EncodeColor(colorRed) + WriteIf(downtrendm05,"Down Trend" ," " )+ EncodeColor(colorPink)
+WriteIf(sidewaym05 ,"Side Way" ," " ) + EncodeColor(colorYellow) + " ADX :" + EncodeColor(colorWhite)+ WriteVal(ADXm05,1.0) + EncodeColor(colorYellow)+ " %G ="+ EncodeColor(colorWhite)+ WriteVal(ROCADXm05,1.0)
+ EncodeColor(colorYellow) + "\n TFm15=" + EncodeColor(colorGreen) +WriteIf(uptrendm15 ,"UpTrend" ," ")+ EncodeColor(colorRed) + WriteIf(downtrendm15,"Down Trend" ," " )+ EncodeColor(colorPink)
+WriteIf(sidewaym15 ,"Side Way" ," " ) + EncodeColor(colorYellow) + " ADX :" + EncodeColor(colorWhite)+ WriteVal(ADXm15,1.0) + EncodeColor(colorYellow)+ " %G ="+ EncodeColor(colorWhite)+ WriteVal(ROCADXm15,1.)
+ EncodeColor(colorYellow) + "\n TFm30=" + EncodeColor(colorGreen) +WriteIf(uptrendm30 ,"UpTrend" ," ")+ EncodeColor(colorRed) + WriteIf(downtrendm30,"Down Trend" ," " )+ EncodeColor(colorPink)
+WriteIf(sidewaym30 ,"Side Way" ," " ) + EncodeColor(colorYellow) + " ADX :" + EncodeColor(colorWhite)+ WriteVal(ADXm30,1.0) + EncodeColor(colorYellow)+ " %G ="+ EncodeColor(colorWhite)+ WriteVal(ROCADXm30,1.2)
+ EncodeColor(colorYellow) + "\n TFm60=" + EncodeColor(colorGreen) +WriteIf(uptrendm60 ,"UpTrend" ," ")+ EncodeColor(colorRed) + WriteIf(downtrendm60,"Down Trend" ," " )+ EncodeColor(colorPink)
+WriteIf(sidewaym60 ,"Side Way" ," " ) + EncodeColor(colorYellow) + " ADX :" + EncodeColor(colorWhite)+ WriteVal(ADXm60,1.0) + EncodeColor(colorYellow)+ " %G ="+ EncodeColor(colorWhite)+ WriteVal(ROCADXm60,1.2)
+ EncodeColor(colorYellow) + "\n TFm120=" + EncodeColor(colorGreen) +WriteIf(uptrendm120 ,"UpTrend" ," ")+ EncodeColor(colorRed) + WriteIf(downtrendm120,"Down Trend" ," " )+ EncodeColor(colorPink)
+WriteIf(sidewaym120 ,"Side Way" ," " ) + EncodeColor(colorYellow) + " ADX :" + EncodeColor(colorWhite)+ WriteVal(ADXm120,1.0) + EncodeColor(colorYellow)+ " %G ="+ EncodeColor(colorWhite)+ WriteVal(ROCADXm120,1.2)
+ EncodeColor(colorYellow) + "\n TFm240=" + EncodeColor(colorGreen) +WriteIf(uptrendm240 ,"UpTrend" ," ")+ EncodeColor(colorRed) + WriteIf(downtrendm240,"Down Trend" ," " )+ EncodeColor(colorPink)
+WriteIf(sidewaym240 ,"Side Way" ," " ) + EncodeColor(colorYellow) + " ADX :" + EncodeColor(colorWhite)+ WriteVal(ADXm240,1.0) + EncodeColor(colorYellow)+ " %G ="+ EncodeColor(colorWhite)+ WriteVal(ROCADXm240,1.2)
+ EncodeColor(colorYellow) + "\n TFmDaily=" + EncodeColor(colorGreen) +WriteIf(uptrendmDaily ,"UpTrend" ," ")+ EncodeColor(colorRed) + WriteIf(downtrendmDaily,"Down Trend" ," " )+ EncodeColor(colorPink)
+WriteIf(sidewaymDaily ,"Side Way" ," " ) + EncodeColor(colorYellow) + " ADX :" + EncodeColor(colorWhite)+ WriteVal(ADXmDaily,1.0) + EncodeColor(colorYellow)+ " %G ="+ EncodeColor(colorWhite)+ WriteVal(ROCADXmDaily,1.2)
;

ไม่มีความคิดเห็น:
แสดงความคิดเห็น