EA öffnet zu viele Orders trotz Begrenzung
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Expert Forum
Ich habe eine Frage bzgl meines EAs. Der angehängte EA öffnet trotz LastOrder = 1 vielzuviele Orders im Backtesting und ich finde den Auslöser im Code nicht. Sieht evtl. von euch jemand den Grund ? Sonst macht der Code was er soll. Viele Grüsse akuh |
Für die Anzahl der zu öffnenden Orders pro WP ist nicht LastOrder verantwortlich, sondern der Wert der Variablen MaxOrders.
traderdoc |
Hmm ok. Aber MaxOrders habe ich mit dem Wert 1 festgelegt. Dennoch eröffnet der EA die vielen Order.
akuh |
Ja, da hat der Progger was vergessen:
Ticket = OrderSend ( Symbol(), OP_BUY, Lots, Ask, Slippage, Ask - ( StopLoss * Point ), Ask + ( TakeProfit * Point ), NULL, Magic, 0, Green); und Ticket = OrderSend ( Symbol(), OP_SELL, Lots, Bid, Slippage, Bid + ( StopLoss * Point ), Bid - ( TakeProfit * Point ), NULL, Magic, 0, Red); traderdoc |
Ah perfekt dankeschön. Jetzt klappts !
akuh |
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe noch eine Frage bzgl des Auslesens von Symbolen/Werte aus Indicatoren mittels iCustom(). Ich möchte z.b aus dem folgenden aungehängten Indikator nur den Pfeil auslesen, d.h sobald ein Pfeil nach oben auftauchte soll ein buy signal gesendet werden und umgekehrt. Es geht mir nun drum wie ich diese Information auslese.
Wird der Wert über den SetIndexBuffer() ausgelesen ? Wenn ja welchen Wert nimmt doubleA,B an, also welchen Wert gibt die FUnktion iCustom() aus ? double A = iCustom(NULL,0,"Indicator1",1,1); double B = iCustom(NULL,0,"Indicator1",0,1); RefreshRates(); // RefreshRate() update Bid and Ask value. if ( ( Ask - Bid ) / Point < MaxSpread ) { // Checking, if spread is less than MaxSpread from inputs. If its Bigger, orders wont open // Replace 1 == 0 to your conditions to buy order. if ( A ==1 && LastOrder != 1 ) { // LastOrder!= 1 prevent script from making a lot of same buy orders Ticket = OrderSend ( Symbol(), OP_BUY, Lots, Ask, Slippage, Ask - ( StopLoss * Point ), Ask + ( TakeProfit * Point ), NULL, Magic, 0, Green); LastOrder = 1; // It prevent script from making a lot of same buy orders } // Replace 1 == 0 to your conditions to buystop order. if ( 1 == 0 && LastOrder != 1 ) { // LastOrder!= 1 prevent script from making a lot of same buystop orders Ticket = OrderSend ( Symbol(), OP_BUYSTOP, Lots, Ask + ( Pips * Point ), Slippage, Ask + ( Pips * Point ) - ( StopLoss * Point ), Ask - ( Pips * Point ) + ( TakeProfit * Point ), NULL, Magic, TimeCurrent() + ( 60 * Mins ), Green); LastOrder = 1; // It prevent script from making a lot of same buy orders } // Replace 1 == 0 to your conditions to sell order. if ( B == 0 && LastOrder != 0 ) { // LastOrder!= 0 prevent script from making a lot of same sell orders Ticket = OrderSend ( Symbol(), OP_SELL, Lots, Bid, Slippage, Bid + ( StopLoss * Point ), Bid - ( TakeProfit * Point ), NULL, Magic, 0, Red); LastOrder = 0; // It prevent script from making a lot of same sell orders Gruss akuh |
Alle Zeitangaben in WEZ +2. Es ist jetzt 02:27 Uhr. |
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum