SIGNAL der HAMMERHART Strategie – 004DE

In einer Strategie ist ein Signal irgend einer Art notwendig , ich erstelle hier ziemlich einfache Strategie basierend auf Candlestick (BARs) und deren Formationen.
Zur Japanischen Kerzen Charts finde ich ohne weiteres einige Infos im Netz oder auch im Zorro Manual .

Die Idee ,das Kaufsignal und die HammerHart Strategie
Signal:
1. Finde Drei schwarze Krähen (Three Black Crows)
2. Wenn diese Krähen gefunden werden , dann noch ein Hammer

Was brauche ich für die Umsetzung von HammerHart Kauf Signal ?


1. Ich picke mir nur den 13 Juli 2018 raus, damit ich visuell das Ergebnis direkt betrachten kann, also StartDate und EndDate auf 20180713
StartDate = 20180713;
EndDate = 20180713;


2. Es ist klar, ich will das Signal auf 30 min Bar Perioden generieren , ich setzte somit FIX BarPeriod auf 30 min
BarPeriod = 30;


3. Die Kerzen Formationen (Candle Patterns) werde ich mir selber Definieren , obwohl es bereits fertige Candle Patterns Funktionen bei Zorro Trader gibt.
(später werde ich dies in eigene Funktionen verlagern)

Als erstes der Hammer
Bar Eröffnung Preis == priceOpen()
Bar höchst Preis == priceHigh()
Bar tiefst Preis == priceLow()
Bar Schluss Preis == priceClose()

Ich habe nun bereits die Variablen zur den Candle Preis Serien in klammer hingeschrieben, und ich werde diese auch so erstmal verwenden.
Dabei ist zu beachten , dass unter C-Lite in Zorro Trader die Funktionen ohne Parameter in Kammern automatisch “0” zugewiesen bekommen.
Deswegen schreibe ich mal direkt den Parameter rein z.B. priceClose(1) das bedeutet ich Frage die letzte Kerze vor der aktuellen Kerze PriceClose(0)

Also, ich fange ich endlich an den Hammer in Worten zu definieren, aber Moment , vorher kurzer Abstecher zu den Operatoren in C /C++
Diese brauche ich erstmal:
> grösser
>= grösser oder gleich
< kleiner
=< kleiner oder gleich
+ Plus
- Minus
== ist Gleich
!= ist Nicht Gleich
|| oder

&& und
! ist Nicht

Und ja , je nach Programmiersprache es ist besser dran zu glauben es gilt PUNKT vor STRICH, deswegen wo es nur geht einfache Klammer benutzen !


1. Wenn der Body (der Kerzen Körper ) Grau (Grün oder Bulish) ist
if ( priceClose(0) > priceOpen(0) )

2. Und der Body muss kleiner sein als der Bar Schatten , kalkuliere dazu Entfernung vom PriceOpen zum High und zum Low , und die von Open zur Low , und letzte muss kleiner sein.
&& ( priceOpen(0) - priceLow(0) ) > ( priceHigh(0) - priceOpen(0) )

3. Und ich kalkuliere nochmal die Entfernung von High zu Open , und diese muss kleiner sein als 30% vom gesamt BAR
( priceHigh(0) - priceOpen(0) ) < ( (priceHigh(0) - priceLow(0) ) * (0.3 *1) )

4. Dann markiere ich den Green Hammer und Plotte kleinem grünen(GREEN) Dreieck (TRIANGLE) direkt unter die BarLow (priceLow) etwa 2 Pips weiter unten.
{plot ( "Green Hammer" , ( priceLow(0) - ( 2 * PIP ) ), TRIANGLE, GREEN);}

Alles verwirrend? Ah ja, ich habe hier eine Bedingte Anweisung und Verzweigung, zum glück ist die bei Wikipedia recht gut erklärt.
Das Skript wurde aus dem Beitrag Set und die SYSTEM FLAGS (SCHALTER) 003DE abgeändert und so sieht Code bis jetzt bei mir aus ,

// HammerHart ///////////////////////
function run() 
{
	set(PLOTNOW);
	StartDate = 20180713;
	EndDate = 20180713;
	BarPeriod = 30;
		
	vars Prices = series(price());
	
	if(
	       // der Green Hammer  
               ( priceClose(0) > priceOpen(0) )
	   &&  ( priceOpen(0) - priceLow(0) )  >  ( priceHigh(0) - priceOpen(0) )
	   &&  ( priceHigh(0) - priceOpen(0) ) < ( (priceHigh(0) - priceLow(0) ) * (0.3 *1) )
                
                )
		{
			plot ( "Green Hammer" , ( priceLow(0) - ( 2 * PIP ) ), TRIANGLE, GREEN);
		}
	
	
}

Ich hab in dem Code extra etwas mehr Platz zwischen den Klammern gelassen , damit die Zusammenhänge gut erkannt werden , die Kommentare zu jeweiligen Kalkulationen habe ich bewusst weg gelassen, die Sind bereits in dem Webbeitrag hier.

Und Ja , das Dreieck ist auch da ! Klein und Niedlich 🙂
Irgendwann später werde ich das Pattern in eigne Funktion schieben .

Aber ja ,jetzt noch schnell die 3 Schwarzen Bars. Also es handelt sich um Bärische Bars , bei allen muss das Close kleiner als High sein, und das Close von der vorherigen Bar muss grösser sein.

Also Bar 1 (der vorherige aus Sicht des Hammers) muss schwarz sein, und der 2te und die dritte
&& ( priceClose(1) < priceHigh(1) )

&& ( priceClose(2) < priceHigh(2) )

&& ( priceClose(3) < priceHigh(3) )

Jetzt muss das Close von 1 kleiner als 2 sein und 2 kleiner als 3

&& ( priceClose(1) < priceClose(2) )

&& ( priceClose(2) < priceClose(3) )

ich pack die ganzen Bedinungen direkt zu denen von Greenhammer , dann habe ich das HammerHart Signal , falls alle Bedingen erfüllt sind
So schaut das fertige Signal Skript aus:

// HammerHart ///////////////////////
function run() 
{
	set(PLOTNOW);
	StartDate = 20180713;
	EndDate = 20180713;
	BarPeriod = 30;
		
	vars Prices = series(price());
		  
	if(
		// der Green Hammer
	        ( priceClose(0) > priceOpen(0) )
		&& ( priceOpen(0) - priceLow(0) )  >  ( priceHigh(0) - priceOpen(0) )
	        && ( priceHigh(0) - priceOpen(0) ) < ( (priceHigh(0) - priceLow(0) ) * (0.3 *1) )
		
		// Three Black Crows
		&& ( priceClose(1) < priceHigh(1) )
		&& ( priceClose(2) < priceHigh(2) )
		&& ( priceClose(3) < priceHigh(3) )
		
		&& ( priceClose(1) < priceClose(2) )
		&& ( priceClose(2) < priceClose(3) )
		)
		{
			plot ( "HammerHart Signal" , ( priceLow(0) - ( 2 * PIP ) ), TRIANGLE, GREEN);
		}
	
	
}

Endlich , ist das Signal fertig, und dabei habe ich einige neue Funktionen wie #plot oder #BarPeriod zum Teil kennen gelernt. Diese werde ich noch mal unter die Luppe nehmen, aber erstmal will ich im nächsten Beitrag sehen, wie der Zorro Trader das Kauf Signal handelt.

Es gibt im Zorro Handbuch Beispiele zu strategien z.b. hier Lektionen ,
#BarPeriod https://zorro-project.com/manual/en/barperiod.htm
#plot https://zorro-project.com/manual/en/plot.htm
#Comparisons https://zorro-project.com/manual/en/comparisions.htm
If..else https://zorro-project.com/manual/en/if.htm

Print Friendly, PDF & Email

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.