Jump to content
Tom Next - Daytrading Community

Simple Codefrage


ibelieve

Recommended Posts

Sorry, ich schon wieder.

 

habe hier einen Ganz simplen Code zum testen.

 

Ich will 2 höhere Hoch und sobald dann ein Bar kommt was ein tieferes Tief hat will ich zum Hoch dessen kaufen.

Ich lasse hier jetzt 2 tiefere Tief zu wenn ich nicht irre.

 

Verkauft wird zum Tief der letzten 5 Bars.

 

variable: eins23Tief(False);
variable: Stop1(0),RH(0);



eins23Tief = h[1] < h[2] and h[2] > h[3] and h[3]>h[4] and l[1] < l[2];
eins23Tiefb = h[1] < h[2] and h[2] < h[3] and h[3] > h[4] and h[4] > h[5] and (l[1] < l[3] or l[2] < l[3]);


if eins23Tief or eins23Tiefb then buy 50 shares next bar h[1] stop;


Stop1 = Lowest(l,5);

if marketposition = 1  then
sell next Bar Stop1[1] stop;

 

In Bild 1 sieht auch alles gut aus.

 

In Bild 2 habe ich den Stopp auf das Tief des letzten Bars um zu sehen wie oft Signale kommen.

Da habe ich am Anfang dann einen Kauf den ich nicht verstehe.

Es gibt einen "Richtigen" Kauf der gleich ausgestoppt wird,

dann einen Kauf obwohl das vor Bar schon höher wie das davor war.

Sollten doch meine Bedingungen eigentlich nicht erfüllt sein.

 

In Bild 3 lasse ich dann mehrere Käufe zu.

Da stellen sich mir dann viele Fragen.

Wenn ich es Richtig lese sollten doch bei der Einstellung nur weitere Positionen gekauft werden wenn die Bedingungen wieder erfüllt sind.

 

Hier gibt es auch den Kauf den ich nicht verstehe von Bild 2

und was mich noch mehr wundert ist das er an vielen Bars 2 mal kauft.

einmal zu den Normalen Bedingungen und dann noch mal zum Close.

Einer eine Idee was das sein könnte?

post-1129-1271688647_thumb.png

post-1129-1271688652_thumb.png

post-1129-1271688657_thumb.png

Link to comment
Share on other sites

Keine Ahnung,

auf jeden Fall fehlt im Code was:

variables: 
eins23Tief(False),
eins23Tiefb(False),
Stop1(0),
RH(0);

 

Das eins23Tiefb fehlt.

Aber das wirst du im echten Code so haben, sonst könnte es ja nicht laufen.

 

Und das RH(0) taucht im Code nirgends auf...?

 

 

So ganz kann ich deinen Code jetzt nicht nachvollziehen, aber sowas muss ich immer selber coden um das zu verstehen. Fremde Codes verstehe ich nie.

 

Bei solchen Fehlern änder ich immer direkt im Code was, und im Hintergrund sehe ich im Charts was die Änderung bewirkt hat.

Lies dazu im Handbuch mal die passenden Zeilen.

Link to comment
Share on other sites

sorry, sollte der Code sein

 

variable: eins23Tief(False);
variable: Stop1(0);



eins23Tief = h[1] < h[2] and h[2] > h[3] and h[3]>h[4] and l[1] < l[2]
or
h[1] < h[2] and h[2] < h[3] and h[3] > h[4] and h[4] > h[5] and (l[1] < l[3] or l[2] < l[3]);


if eins23Tief then buy 50 shares next bar h[1] stop;


Stop1 = Lowest(l,5); 
if marketposition = 1  then
sell next Bar Stop1[1] stop;

 

Wo bei er mir heute eh ganz andere Signale liefert,

was aber auch teilweise damit zusammenhängt das ich die Grundeinstellungen nicht im Code habe,

z.B. das kaufen im Bar am Stopp Punkt.

 

Im Moment kauft er nur zum Close und nicht zum Stopp Punkt.

Aber wie soll der PC mich verstehen wenn andere mich noch nicht mal verstehen :ot:

 

Welche Seiten meinst Du im Handbuch?

Link to comment
Share on other sites

Im Moment kauft er nur zum Close und nicht zum Stopp Punkt..

Das kann am Backtest liegen. Wegen solcher Sachen lässt man ja immer auf möglichst kleinen TFs handeln und Signale von größeren TF geben.

 

Welche Seiten meinst Du im Handbuch?

 

Alle ^^

Nein, einfach STRG-F drücken und dann den Suchbegriff eingeben. zB "data2" oder "sell stop" - so mache ich das immer.

 

Mal ne Frage: was bedeutet " l[1] " im Code? Wofür steht das L ?

 

Sorry dass ich nicht weiter helfen kann, aber ich versteh nur meine eigenen Codes.

Link to comment
Share on other sites

Mal ne Frage: was bedeutet " l[1] " im Code? Wofür steht das L ?

 

Ich will nicht kaufen wenn es kein neues Tief gab wie das Tief von dem Stab der das Hoch machte.

 

Habe 2 neue Hochs,

dann kommt das Bar was ein tieferes Hoch macht und auch tiefer geht wie das Tief von dem Hoch Bar.

 

Sollte erst das 2 Bar mit einem tieferen Hoch wie die beiden Bars davor ein tieferes Tief wie das Hoch Bar machen ist es auch in Ordnung.

 

Einfach eine Abfrage um nicht in Innenbars zu kaufen.

Wo bei sich hier die Frage stellt ob man nur die Low Kurse nimmt oder auch einen Close haben will der Tiefer ist.

Hatte das aber auch mal raus genommen und keine änderung an meinen Problemen festgestellt.

 

Ich bin mir auch noch nicht Ganz klar wie ich überhaupt anfangen soll zu zählen,

 

so wie hier das ich direkt mit H[1] anfange,

eins23Tief = h[1] < h[2] and h[2] > h[3].................

 

oder aber nur mit H anfange.

eins23Tief = h < h[1] and h[1] > h[2]....................

 

Habe beides probiert aber eigentlich keinen sichtbaren Unterschied festgestellt.

Aber ist auch ein Problem wenn man 10 mal Sachen im Code ändert und dann die Übersicht verliert

Link to comment
Share on other sites

Sollte eigentlich nee leichte Sache sein :blush:

 

Es geht nur um den ATR Stopp,

der wohl das tut was er soll,

ich Ihn mir aber gerne im Chart anzeigen lassen würde.

 

Mein Problem,

hier Ihm Code geht es nicht weil man da keine Plot Funktion verwenden kann,

 

schreibe ich es als Indikator geht die Abfrage nicht ob ich in einem Trade bin oder nicht.

 

Einer eine Idee wie ich mir dann den Stopp Wert als Linie im Chart anzeigen lassen kann?

Input: Length1(4),Length2(9),Length3(18), Length4(7), ATR_L(3),ATR_S(3);
Var: MaxTradH(0), MinTradL(0);

variable: eins23Tief(False),eins23Tiefa(False),eins23Tiefb(False),eins23Tiefc(False) ;
variable: EMAFilterL(False);
variable: Stop1(0),EMAFilter(0),Risiko(0),RisikoimMarkt(0);
Input: MeinRisiko(20);

// Hoch < Hoch Gestern, Hoch Gestern > Hoch Vorgestern, Hoch Vorgestern > Tag davor
eins23Tiefa = h < h[1] and h[1] > h[2] and h[2]>h[3] and l < l[1];

eins23Tiefb = h < h[1] and h[1] < h[2] and h[2] > h[3] and h[3] > h[4] and (l < l[2] or l[1] < l[2]); 

eins23Tiefc =  h < h[1] and h[1] < h[2] and h[2] < h[3] and h[3] > h[4] and h[4] > h[5] and
(l < l[3] or l[1] < l[3] or l[2] < l[3]); 


eins23Tief = eins23Tiefa or eins23Tiefb or eins23Tiefc;
/////////////////////////////////////////////////////////////////////

// Trendfilter MA und EMA

EMAFilter = WAverage(c,20)-Average(c ,20);
EMAFilterL = EMAFilter > EMAFilter[1];

Risiko = h - Lowest(l,7);
RisikoimMarkt = MeinRisiko / Risiko;

if eins23Tief and EMAFilterL then buy("EMAFilter") RisikoimMarkt shares next bar h stop;



If MarketPosition <> 1 then MaxTradH = -999999;
If MarketPosition = 1 and H > MaxTradH[1] then MaxTradH = H;

Stop1 = MaxTradH - ATR_L*AvgTrueRange(Length4) ;
if marketposition = 1  then
sell("ATRStop") next Bar Stop1 stop;


SetStopPosition;
SetStopLoss(MeinRisiko);

Link to comment
Share on other sites

Linien kannst du auch im Strategie-Code eintragen. Du willst ja eine Linie.

Nach dem Motto:

 

Linienname = TL_new(anfangsdate, anfangstime, anfangskurs, enddate, endtime, endkurs)

 

Nur Plots gehen (noch) nicht im Strategiecode, soll aber demnächst auch unterstützt werden.

Link to comment
Share on other sites

Also möchtest Du einen EA der bei Bildung eines Hochpunktes auf Durchbruch in den Markt geht? Aber erst, wenn der Kurs wieder beim High angekommen ist?

 

Sollte dann in etwa so aussehen:

bool Hochpunkt()
  {
   if(High[5] < High[4])
   if(High[4] < High[3])
   if(High[3] > High[2])
   if(High[2] > High[1])
   return(true);else return(false);
  }

Oder willst das ganze felxibel in einer Schleife?!

Soll danach eine PendingOrder gesetzt werden oder eine MarketOrder?!

 

LG NC

Link to comment
Share on other sites

Also möchtest Du einen EA der bei Bildung eines Hochpunktes auf Durchbruch in den Markt geht? Aber erst, wenn der Kurs wieder beim High angekommen ist?

 

 

Oder willst das ganze felxibel in einer Schleife?!

Soll danach eine PendingOrder gesetzt werden oder eine MarketOrder?!

 

Ich bilde ein 123,

bestimme also ein Hochpunkt,

sobald der Wert dann fällt will ich über dem Hoch des Bars kaufen was niedriger ist wie das Absolute Hoch.

Das geht aber so weit auch,

bin nur noch Filter am suchen wo mit ich die Signale etwas aussortiert bekomme.

 

Die Order setzung geht mit MC und IB eigentlich auch relativ gut,

er setzt eine Buy Stop Order über dem Hoch,

eine Buy Stop Limit wäre mir zwar lieber, aber so wie ich es gelesen habe geht das nicht.

(Wo bei ich hier noch das Problem habe das mich MC immer fragt ob die Order abgesetzt werden soll,

ist aber sicherlich eine Einstellungs- Sache die ich noch nicht gefunden habe)

 

Worum es mir bei meiner Frage ging ist das zeichnen des ATR Stopps im Chart

If MarketPosition <> 1 then MaxTradH = -999999;
If MarketPosition = 1 and H > MaxTradH[1] then MaxTradH = H;

Stop1 = MaxTradH - ATR_L*AvgTrueRange(Length4) ;
if marketposition = 1  then
sell("ATRStop") next Bar Stop1 stop;

 

Es wird sicherlich wir Henrik schrieb gehen,

ist mir aber jetzt etwas zu kompliziert bzw. übersteigt im Moment meine Fähigkeiten.

Link to comment
Share on other sites

Anmerkung: Programmiersprache ist hier nicht MQL sondern (Power- bzw.)Easylanguage.

 

Die geschweiften Klammern zB kommentieren den Inhalt aus :)

 

Ähm...Ups... :blush: Das habe ich natürlich gewusst :ot:

 

Mal Spaß bei Seite: Habe es leider nicht gewusst und ist mit aber auch nicht bekannt... :ot:

 

Für welche Programme wird diese Art der Sprache benutzt?

 

LG NC

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...