Inhalte aufrufen

  • Über WindowsLive anmelden Log In with Google Anmelden
  • Mitglied werden
Profilbild

Pending Order löschen

- - - - -

  • Du kannst leider keine neuen Themen eröffnen
  • Please log in to reply
16 Antworten zu diesem Thema

  #1
ONLINE   Spekulatsius

Hallo zusammen,

 

ich bin ein wenig ratlos. Obwohl mir das Skript beim kompilieren keinen Fehler ausspuckt und der Passus auch im Body der Order ist, passiert leider nicht das, was ich erwarte. Es passiert einfach gar nichts :( 

 

Was soll passieren? Wenn eine StopBuy Order platziert wurde und der Kurs solange dreht, bis sich die beiden MAs wieder schneiden und in Folge dessen ein anderer Trend vorliegt, soll die Pending Order geschlossen/gelöscht werden. Entsprechend andersherum bei einer StopSell Order.

Please Login or Register to see this Hidden Content

Habt ihr eine Idee was ich falsch mache? Was fehlt, damit die Pending Order bei Erreichen der Bedingung gelöscht wird?

 

Wie immer gilt: Vielen Dank für eure Hilfe!

 

Gruß

Speku



  #2
OFFLINE   traderdoc

Ja, kann auch nicht, weil vor dem Aufrufen von
OrderType()== OP_SELLSTOP
erst mittels OrderSelect() eine entsprechende Order selektiert
werden müsste.

traderdoc
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #3
ONLINE   Spekulatsius

hmm, ich habe mal das Skript etwas umgestellt. OrderSelect() ist nun vor dem OrderType(). Das ändert jedoch nichts :(

Please Login or Register to see this Hidden Content



  #4
OFFLINE   traderdoc

Mal davon abgesehen, dass bei
if (MAkurz >= MAlang && OrderType() == OP_SELLSTOP)
solange SellstopOrders gelöscht werden würden, solange der kurze MA permanent über/gleich dem langen MA liegt.
Das löst man eigentlich eleganter durch den Vergleich der beiden MAs auf Basis der Kerze 1 Und Kerze 2 un bekommt
somit dem Kreuzungspunkt als Trigger für die Orderaktion.

Aber ich kann aus dem o.g. Code nicht erkennen, warum die SellStopOrder nicht gelöscht werden sollte, außer die Variablen
FV_Symbol und oder FV_MagicNumber stimmen nicht.
Überprüfe doch einfach mit einer Printausgabe, ob der EA überhaupt hinter den Abgleich des Symbols und der MagicNumber
springt.

traderdoc
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #5
ONLINE   Spekulatsius

Punkt für dich, traderdoc. Macht natürlich Sinn mit einer Vorperiode zu arbeiten. Auch die print() Hausaufgaben habe ich gemacht. Es lag tatsächlich an den Variablen "FV_" (-> sind Altlasten, die ins Nirvana laufen, bzw. aus in einem anderen Codeschnipsel angesprochen werden) nach dem die Dinger raus waren, griff auch die Delete Funktion. Jedoch mehr als mir lieb ist. Trotz der Bedingung, dass erst bei Trendwende die Pending Order gelöscht werden soll, räumt mir das Programm alles weg, was bei drei nicht auf den Bäumen ist. Selbst wenn es gar kein Trendwechsel gab. Hast du noch eine Idee, was mir derzeit noch einen Strich durch die Rechnung macht?

 

Hier der gegenwärtige Code:

Please Login or Register to see this Hidden Content



  #6
OFFLINE   traderdoc

Na ja, da Du den Kreuzungspunkt nun richtigerweise definiert hast, sollte dieser Kreuzungspunkt auch nur genau einmal abgefragt werden

und nicht über die Dauer einer gesamten Kerzenperiode, denn entweder es gab eine Kreuzung oder eben halt keine. Und gab es eine, dann

wird geschlossen.

 

Mittels:

Please Login or Register to see this Hidden Content

wird diese Abfrage nur ein einziges Mal und zwar genau immer nach einem Kerzenwechsel durchlaufen und damit auch der Code, der anstelle der Pünktchen stehen würde.

Dort könnte dann z.B. die Close-Routine stehen.

 

traderdoc


Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #7
ONLINE   Spekulatsius

Ich glaube ich habe die Ursache gefunden, eventuell habe ich auch eine Erklärung dazu, jedoch keine Lösung :(

 

Deine einmalige Abfrage habe ich eingebaut, traderdoc. Nach gefühlt weiteren zig Durchläufen durch den Strategietester und durchstöbern des Journals nach den Printausgaben, konnte ich feststellen, dass die StopOrder bei Platzierung sofort gelöscht wird. Das Skript scheint die Bedingung des Trendwechsels nicht zu schlucken. Dabei habe ich doch eigentlich alles angegeben, was nötig ist?! 

 

Gruß

Speku

Please Login or Register to see this Hidden Content



  #8
OFFLINE   alexf82

Please Login or Register to see this Hidden Content

probier es bitte mal so ....



  #9
ONLINE   Spekulatsius

Hallo alexf82,

 

danke für deinen Tipp. Ich habe es entsprechend umgestellt, jedoch führt das leider auch nicht zum gewünschten Ziel. Obwohl sich der Trend dreht, löscht er die PendingOrder nicht. Leider scheint es aktuell auch nicht die Lösung zu sein :(



  #10
OFFLINE   alexf82

lass dir mal per print, nachdem die werte neu befüllt wurden, die 4 variablen ausgeben (also MAlangV , MAkurzV, MAlang, MAkurz )

passen die werte, dass eine kreuzung stattgefunden hat?

du verwendest hier einen SMA, hast du dann am Chart auch den SMA oder vielleicht den EMA??



  #11
ONLINE   Spekulatsius

hmm ich habe jetzt mal jede einzelne MA Variable mit einem Print versehen, jedoch wird mir nichts angezeigt bei einem Testlauf. Irgendwie will er sie nicht...

 

P.S. Sind SMA und keine EMA. Das hab ich auch nochmal zur Sicherheit geprüft

Please Login or Register to see this Hidden Content


Bearbeitet von Spekulatsius, 20 June 2018 - 12:39 Uhr,


  #12
OFFLINE   alexf82

die parameter MA_lang und MA_kurz haben aber schon Werte??

trage mal statt der variablen feste werte ein

 

und es muss ja heissen: Print("langV: "+ MAlangV);


Bearbeitet von alexf82, 20 June 2018 - 12:45 Uhr,


  #13
ONLINE   Spekulatsius

Ja, MA_lang und MA_kurz haben Werte, welche über die globalen Variablen definiert sind. Das Programm zieht sich die Werte auch als Trigger für einen Einstieg. Da klappt alles. Bei der Orderstreichung hingegen findet das irgendwie alles keine Berücksichtigung. Ich bekomme selbst über die Print Ausgabe nichts angezeigt... 



  #14
OFFLINE   alexf82

dann stimmt wohl was mit den var MA_lang und MA_kurz nicht.

also mal testweise feste Werte eintragen!



  #15
ONLINE   Spekulatsius

hab ich schon... das macht es nicht besser



  #16
OFFLINE   traderdoc

Ja, MA_lang und MA_kurz haben Werte, welche über die globalen Variablen definiert sind. Das Programm zieht sich die Werte auch als Trigger für einen Einstieg. Da klappt alles. Bei der Orderstreichung hingegen findet das irgendwie alles keine Berücksichtigung. Ich bekomme selbst über die Print Ausgabe nichts angezeigt...


Das geht hier a bisserl drunter und drüber!

Bei Print("Lang") wird er definitiv nur Lang anzeigen, deshalb unbedingt so, wie in Post #12 und dann werden auch Werte angezeigt.
Du musst mit Print() die Wege immer weiter einengen. Wird denn überhaupt hinter
if (OldTime != Time[0]
eingesprungen, wenn eine neue Kerze erscheint. Man sieht ja aus Deinem Code nicht, von wo aus diese if-Abfrage angesprungen wird.

Das solltest Du uns unbedingt mitteilen. Also am besten den gesamten Code!

traderdoc
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierwünsche.

  #17
ONLINE   Spekulatsius

hmm. Wenn ich die Printanzeige nach #12 hinterlegt habe, gabs eine Warnung numbers to string. Ich habe einfach als Verbindungsoperator das Komma anstatt einem Plus genommen. Jedoch läuft die Abfrage scheinbar nicht richtig rein. Soll heißen, ich habe keine genauen Werte finden können als Kommentar. Es wirkt so, als würde die Abfrage außenvor sein - sprich gar nicht geprüft werden. Leider weiß ich nicht, wie ich das Ganze noch präziser formulieren soll

 

Ich würde wahnsinnig ungern das komplette Skript reinstellen. Würde es reichen die OrderSend, OrderModify und die leider noch nicht funktionierende OrderDelete Funktion anzuhängen? 





Similar Topics

  Thema Eröffnet von Statistik Letzter Beitrag




0 Benutzer lesen gerade dieses Thema

0 Mitglieder, 0 Gäste, 0 anonyme Nutzer