Jump to content
Tom Next - Daytrading Community

Swing High Low


nichtsnutz

Recommended Posts

Ich habe mir die Tage mal das Buch von Philipp Kahler angeschaut und versucht die Swing High Low Punkte nach seiner Definition zu programmieren.

 

Swing High = ein Hoch umgeben von zwei tieferen Hochs und das zweite tiefere Hoch ist kein inside Day

Swing Low = genau anders rum

 

Seine Outside Bar Regel habe ich noch nicht drin. Mal schauen was man damit machen kann. Es ist ein erster Ansatz, Anregungen etc. sind willkommen.

 

_SECTION_BEGIN("Price");
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close", ParamColor("Color", colorGrey40 ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); 
_SECTION_END();

GraphZOrder = 1;
GraphXSpace = 5;

swingLow = 0;
swingHigh = 0;


UpDown = 0; // 1 = next is High, 2 = next is Low
tmpHighMarker = 0;
tmpLowMarker = 0;

LowLine = 0;
HighLine = 0;

for(i=10;i<BarCount;i++) {
//printf("---Loop %g---\n",i);
InsideDay = L[i] >= L[i-1] AND H[i] <= H[i-1];

if( (UpDown == 0 OR UpDown == 1) AND H[i-2] <= H[i-1] AND H[i-1] >= H[i] AND NOT tmpHighMarker[i-1]) {

	if(InsideDay) {
		tmpHighMarker[i-1] = 1;
		tmpCounter = 0;
	} else {
		swingHigh[i-1] = 1;
		UpDown = 2;
		HighLine[i-1] = H[i-1];
		//printf("set new high at bar %g\n",i-1);
	}
}

if( (UpDown == 0 OR UpDown == 2) AND L[i-2] >= L[i-1] AND L[i-1] <= L[i] AND NOT tmpLowMarker[i-1] ) {

	if(InsideDay) {
		tmpLowMarker[i-1] = 1;
		tmpCounter = 0;
	} else {
		swingLow[i-1] = 1;
		UpDown = 1;
		UpDownChange = 1;
		LowLine[i-1] = L[i-1];

	}
}

if(tmpHighMarker[i-1]) {
	tmpCounter++;

	if(H[i] > H[i-tmpCounter]) {

		for(j=tmpCounter;j>0;j--)
			tmpHighMarker[i-j] = 0;

	} else {

		if(L[i] < L[i-tmpCounter]) {

			swingHigh[i-tmpCounter] = 1;
			
			HighLine[i-tmpCounter] = H[i-tmpCounter];
			//printf("initial change high at bar %g value %g\n",i-tmpCounter,H[i-tmpCounter]);
			for(j=tmpCounter;j>0;j--) {
				tmpHighMarker[i-j] = 0;
				
				if(j == tmpCounter)
					continue;
				
				HighLine[i-j] = HighLine[i-j-1];
				//printf("change high at bar %g value %g\n",i-j,HighLine[i-j-1]);
			}

			UpDown = 2;

		} else {

			tmpHighMarker[i] = 1;

		}
	}
}

if(tmpLowMarker[i-1]) {
	tmpCounter++;

	if(L[i] < L[i-tmpCounter]) {

		for(j=tmpCounter;j>0;j--)
			tmpLowMarker[i-j] = 0;

	} else {

		if(H[i] > H[i-tmpCounter]) {

			swingLow[i-tmpCounter] = 1;
			LowLine[i-tmpCounter] = L[i-tmpCounter];

			for(j=tmpCounter;j>0;j--) {
				tmpLowMarker[i-j] = 0;
				if(j == tmpCounter)
					continue;
				
				LowLine[i-j] = LowLine[i-j-1];
			}

			UpDown = 1;

		} else {

			tmpLowMarker[i] = 1;

		}
	}
}

HighLine[i] = HighLine[i-1];
LowLine[i] = LowLine[i-1];
//	printf("set high bar %g value %g\n",i,HighLine[i-1]);

//	if(H[i] > HighLine[i])
//		HighLine[i] = Null;

//	printf("---End Loop %g---\n",i);
}



Plot(HighLine,"h",colorBlue);
Plot(LowLine,"l",colorGreen);
PlotShapes(shapeSmallUpTriangle*swingLow,colorYellow,0,Low-(Low*0.0005));
PlotShapes(shapeSmallDownTriangle*swingHigh,colorYellow,0,High+(High*0.0005));

 

highlow.png

Link to comment
Share on other sites

Hallo duncan,

könntest du mir mal ein Bild vom Infineon Chart mit deiner Version reinstellen ? Dann könnte ich mal schauen wie du mit den Ouside Days umgehst.

 

Anbei mal ein Chart, in dem die Outside Days mit einem kleinen Kreis markiert sind. Würden beispielsweise die Bars an Punkt 1 und 2 zu neuen SH und SL werden ?

 

Gruß nn

 

 

highlow1.png

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...