ibelieve Posted April 19, 2010 Report Posted April 19, 2010 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 2und 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?
Henrik Posted April 19, 2010 Report Posted April 19, 2010 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.
ibelieve Posted April 20, 2010 Author Report Posted April 20, 2010 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 Welche Seiten meinst Du im Handbuch?
Henrik Posted April 20, 2010 Report Posted April 20, 2010 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.
ibelieve Posted April 20, 2010 Author Report Posted April 20, 2010 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
ibelieve Posted April 26, 2010 Author Report Posted April 26, 2010 Sollte eigentlich nee leichte Sache sein 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);
Henrik Posted April 26, 2010 Report Posted April 26, 2010 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.
NikkChade Posted April 26, 2010 Report Posted April 26, 2010 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
Henrik Posted April 27, 2010 Report Posted April 27, 2010 Anmerkung: Programmiersprache ist hier nicht MQL sondern (Power- bzw.)Easylanguage. Die geschweiften Klammern zB kommentieren den Inhalt aus :)
ibelieve Posted April 27, 2010 Author Report Posted April 27, 2010 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 ChartIf 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.
NikkChade Posted April 27, 2010 Report Posted April 27, 2010 Anmerkung: Programmiersprache ist hier nicht MQL sondern (Power- bzw.)Easylanguage. Die geschweiften Klammern zB kommentieren den Inhalt aus :) Ähm...Ups... Das habe ich natürlich gewusst Mal Spaß bei Seite: Habe es leider nicht gewusst und ist mit aber auch nicht bekannt... Für welche Programme wird diese Art der Sprache benutzt? LG NC
ibelieve Posted April 27, 2010 Author Report Posted April 27, 2010 Mal Spaß da bei Für welche Programme wird diese Art der Sprache benutzt? LG NC Wer lesen kann ist klar im Vorteil Einfach in den Thread Titel schauen
goso Posted April 27, 2010 Report Posted April 27, 2010 Für welche Programme wird diese Art der Sprache benutzt? Power Language = Multi Charts, Easy Language = Tradestation, sehr ähnlich bis fast gleich ist noch Equilla, die "Sprache" von Tradesignal
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now