Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   EA öffnet zu viele Orders trotz Begrenzung (http://www.expert-advisor.com/forum/showthread.php?t=5321)

akuh 29.11.16 20:55

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

traderdoc 29.11.16 21:11

Für die Anzahl der zu öffnenden Orders pro WP ist nicht LastOrder verantwortlich, sondern der Wert der Variablen MaxOrders.

traderdoc

akuh 29.11.16 21:15

Hmm ok. Aber MaxOrders habe ich mit dem Wert 1 festgelegt. Dennoch eröffnet der EA die vielen Order.

akuh

traderdoc 29.11.16 21:30

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

akuh 29.11.16 22:05

Ah perfekt dankeschön. Jetzt klappts !

akuh

akuh 30.11.16 21:48

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