Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3824
Beiträge: 36912
Benutzer: 6.082
Aktive Benutzer: 493
Links: 80
Wir begrüßen unseren neuesten Benutzer: idur
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 8 Stunden
- idur
vor einem Tag
- DarthTrade...
vor einem Tag
- Eren
vor einem Tag
- Rene1504
vor einem Tag
- ibdafx

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 29
Gesamt: 29
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Werbung

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 18.03.16
Neues Mitglied
 
Registriert seit: Sep 2014
Beiträge: 18
Traderole befindet sich auf einem aufstrebenden Ast
Standard OrderModifyError 1 ????

Hallo!
Ich habe einen EA geschrieben, der zwei Positionen eröffnet. Sobald die erste Posi in T/P gelaufen ist, soll der S/L der zweite Posi in auf Breakeven gezogen werden. Hier ist der Code:

int RSIperiode = 2;
int CCIperiode = 10;
int Start = 8;
int Ende = 22;
int magicnumber = 12345;
int ticketlong1,ticketlong2,ticketshort1,ticketshort2;
double lot = 0.1;
double slippage= 2 * Point;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---

//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---

}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{

checkforOrdersend();
checkforbreakeven();

}
//+------------------------------------------------------------------+

//================================================== ================
bool tradezeit()
{
int zeit = TimeHour(TimeLocal());

if(zeit > Start && zeit < Ende )
return (true);
else return (false);
}
//================================================== ================
bool checkforBuy()
{
double RSI = iRSI(NULL,0,RSIperiode,PRICE_CLOSE,1);
double CCI = iCCI(NULL,0,CCIperiode,PRICE_CLOSE,1);
double BB = iBands(NULL,0,20,2,0,PRICE_CLOSE,2,1);

if(RSI < 10 && CCI < -150 && Close[1] < BB)
return(true);
else return(false);
}

//================================================== ===================
double checkstoplosslong()
{
double StopplossLong = Close[1] - 100 * Point; // 10 PIPS S/L

return (StopplossLong);
}
//================================================== ===================
double checktakeprofitlong1()
{
double TakeprofitLong1 = Close[1] + 200 * Point; // T/P1 = 20 PIPS

return (TakeprofitLong1);
}
//================================================== ======
double checktakeprofitlong2()
{
double TakeprofitLong2 = Close[1] + 400 * Point; // T/P1 = 40 PIPS

return (TakeprofitLong2);
}
//================================================== ======
//================================================== ======
int checkforOrdersend()
{
if(Volume[0] == 1 && checkforBuy() == true && tradezeit() == true)
{
ticketlong1 = OrderSend(NULL,OP_BUY,lot,Ask,slippage,checkstoplo sslong(),checktakeprofitlong1(),"",magicnumber,0,B lue);
if(ticketlong1 == -1) Print(GetLastError());
}
if(Volume[0] == 1 && checkforBuy() == true && tradezeit() == true)
{
ticketlong2 = OrderSend(NULL,OP_BUY,lot,Ask,slippage,checkstoplo sslong(),checktakeprofitlong2(),"",magicnumber,0,B lue);
if(ticketlong2 == -1) Print(GetLastError());
}

return(0);
}
//================================================== ===================
int checkforbreakeven()
{
int i;
RefreshRates();

for(i = OrdersTotal()-1; i >= 0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderType() == OP_BUY && NormalizeDouble(Bid,Digits) >= NormalizeDouble(OrderOpenPrice()+200 * Point,Digits) && OrderTakeProfit() != checktakeprofitlong1() && OrderStopLoss() != OrderOpenPrice() )
{
if (!OrderModify(OrderTicket(),OrderOpenPrice(),Order OpenPrice(),OrderTakeProfit(),0,Yellow))
{
Print("Ordermodifylong:_",GetLastError());
}
else Print("Order has been modified");
}
}


return(0);
}

Kann mir da jemand weiterhelfen??? Ich danke schon mal im Voraus
  #2 (permalink)  
Alt 18.03.16
Neues Mitglied
 
Registriert seit: Sep 2014
Beiträge: 18
Traderole befindet sich auf einem aufstrebenden Ast
Standard

Also ich bekomme das ganze Journal voll mit OrderModifyError1, obwohl die Positionen richtig bearbeitet werden...
  #3 (permalink)  
Alt 18.03.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 565
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Muss nicht die Zeit oben als solche definiert werden? Start und Ende reicht da glaub ich nicht.

Soll man die Parameter nicht im MT einstellen können?
  #4 (permalink)  
Alt 18.03.16
Neues Mitglied
 
Registriert seit: Sep 2014
Beiträge: 18
Traderole befindet sich auf einem aufstrebenden Ast
Standard

Danke für die schnelle Antwort!

Die Zeit definiere ich in der Funktion tradezeit().

Ich habe den EA bei einem anderen Broker getestet und erhalte dort nicht die Fehlermeldung. Schon merkwerdürdig...
Thema geschlossen

Lesezeichen

Stichworte
breakeven, mql4, ordermodifyerror, ordermodifyerror 1, programmerung, programmierung metatrader, sl, tp


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 04:17 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2017 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------