วันอังคารที่ 20 สิงหาคม พ.ศ. 2556

+++ ADX PDI (DI+), MDI(DI-) แบบ Multi Time Frame


   วันนี้ เลือกเอา 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)

;

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

แสดงความคิดเห็น