Hallo,
ich möchte hier mal meinen ersten Versuch vorstellen, ein mech. HS zu programmieren. Habt nachsicht mit mir, da ich das ganze Programm noch nicht testen konnte, weil Wochenende ist.
Ich bin es mehrmals durchgegangen und hoffe, dass dort nun keine Fehler mehr drin sind.
Es handelt sich um ein Trendfolger, was an sich nichts besonderes ist. Ich habe jedoch einen kleinen Kniff eingebaut, durch den (hoffentlich) Seitwärtsphasen keine Fehlsignale auslösen können.
Im wesentlichen sind die einzelnen Komponenten:
-ein MA variabler Länge und Typ der Hochs
-ein MA variabler Länge und Typ der Tiefs
-ein MA auf den MA der Hochs
-ein MA auf den MA der Tiefs
-ein Stochastic-Oszillator mit fester periodischer Kopplung an die MAs
Da man hier leider keine Dateien hochladen kann, gibts das Listing:
Eingaben:
Name: Pr / Anzeigenname: Preisquelle / Typ: Price / Standart close
Name: tPr / Anzeigenname: Periodendauer / Typ: integer with bounds / Standart 10 min1 max 200
Name: mt / Anzeigenname: MA-Art / Typ: MA-Type / Standart: simple
Name: UpperLine / Anzeigenname: Stochastic-Überverkauft / Typ: integer with bounds / Standart 75 min1 max 100
Name: DownLine / Anzeigenname: Stochastic-Überkauft / Typ integer with boiunds / Standart: 25 min1 max100
Ausgaben:
Short und Long geben allgemein Bullish/ Bearish an
OpenBuy, OpenSell, CloseBuy, CloseSell wie in den Beispielen Handelssignale
Formel:
{MA-Strings}
HsimpleMA := Mov(HIGH,tPr,mt);
HglatterMA := Mov(HsimpleMA,tPr,mt);
LsimpleMA := Mov(LOW,tPr,mt);
LglatterMA := Mov(LsimpleMA,tPr,mt);
{Stochastic}
StK := ((C-LLV(L,tPr*1.4))/(HHV(H,tPr*1.4)-LLV(L,tPr*1.4)))*100;
StDK := Mov(StK,tPr/3,mt);
StDD := Mov(StDK,tPr/3,mt);
{Short-Signal}
{Signal wenn: Kurs kreuzt HsimpleMA nach unten UND die drei übrigen MAs steigen UND Stochastic > Upperline}
KursSchnittup := CROSS(HsimpleMA, Pr);
HgMAup := if(HglatterMA >= ref(HglatterMA, -1),1 ,0 );
LsMAup := if(LsimpleMA >= ref(LsimpleMA, -1),1 ,0 );
LgMAup := if(LglatterMA >= ref(LglatterMA, -1),1 ,0 );
ueberkauft := if(StDK > UpperLine, 1, 0);
Sellsignal := if(KursSchnittup And HgMAup And LsMAup And LgMAup And ueberkauft= 1, 1, 0);