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: 3823
Beiträge: 36904
Benutzer: 6.074
Aktive Benutzer: 496
Links: 80
Wir begrüßen unseren neuesten Benutzer: hmf44
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 42 Minuten
- hmf44
vor 4 Stunden
- Crossa
vor 5 Stunden
- snatshit
vor einem Tag
- Roerich
vor einem Tag
- John_Liver...

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 49
Gesamt: 51
Team: 0
Team:  
Benutzer:  Handarbeit, kvolstorf
Freunde anzeigen

Empfehlungen

Werbung

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 26.02.13
Neues Mitglied
 
Registriert seit: Oct 2011
Beiträge: 13
enni01 befindet sich auf einem aufstrebenden Ast
Standard Break Even

Hallo,

ich habe folgenden EA als Break Even laufen. Nun ist es aber leider so, das er ständig überwacht und wenn der TS los läuft, dann stellt dieser EA immer wieder auf den Break Even Wert zurück. Kann mir jemand sagen was ich da ändern muss?

Hier der Code:

//+------------------------------------------------------------------+
//| Breakeven EA v1.mq4 |
//| Copyright © 2011, tigpips |
//| tigpips@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, tigpips"
#property link "tigpips@gmail.com"

extern int Break_Even_After_X_Pips = 15;
extern bool useMagicNumber = false;
extern int Magic = 1234567;

int init()
{
if(Digits == 5)
{
Break_Even_After_X_Pips = Break_Even_After_X_Pips * 10;
}

return(0);
}

int deinit()
{

return(0);
}

int start()
{
AdjustStopLoss();
return(0);
}
//+------------------------------------------------------------------+

void AdjustStopLoss()
{
for(int cnt=OrdersTotal()-1;cnt>=0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(useMagicNumber == true)
{
if (OrderMagicNumber()==Magic && OrderStopLoss() != OrderOpenPrice())
{
if(( OrderProfit() - OrderCommission() ) / OrderLots() / MarketInfo( OrderSymbol(), MODE_TICKVALUE ) >= Break_Even_After_X_Pips)
{
if(OrderType()==OP_SELL){
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOp enPrice(),OrderTakeProfit(),0,Red);
}
if(OrderType()==OP_BUY){
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOp enPrice(),OrderTakeProfit(),0,Blue);
}
}
}
}
else if(useMagicNumber == false)
{
if(OrderStopLoss() != OrderOpenPrice())
{
if(( OrderProfit() - OrderCommission() ) / OrderLots() / MarketInfo( OrderSymbol(), MODE_TICKVALUE ) >= Break_Even_After_X_Pips)
{
if(OrderType()==OP_SELL){
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOp enPrice(),OrderTakeProfit(),0,Red);
}
if(OrderType()==OP_BUY){
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOp enPrice(),OrderTakeProfit(),0,Blue);
}
}
}
}
}
}
  #2 (permalink)  
Alt 26.02.13
Mitglied
 
Registriert seit: Jan 2012
Beiträge: 142
Hoschie befindet sich auf einem aufstrebenden Ast
Standard

Moin, ich hab das mal wie folgt gemacht:

double Profit,OCP,OT,average,Lots; --> global

void BreakEven()
{


for (int i = OrdersTotal() - 1; i >= 0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
//-----
if (OrderSymbol() == Symbol() && OrderType() == OP_BUY || OrderType() == OP_SELL)
{
Lots = Lots + OrderLots();
Profit = Profit + OrderProfit() + OrderCommission()+OrderSwap();
OCP = OrderClosePrice();
OT = OrderType();
}
}

if( Lots > 0 )
double pips = Profit/Lots/MarketInfo(Symbol(),MODE_TICKVALUE);
if (OT == OP_BUY)
{
average = OCP - (pips*Point);
}
if (OT == OP_SELL)
{
average = OCP + (pips*Point);
}
Comment ("Lots = "+ Lots,
"\n","Profit = ", Profit,
"\n","pips = ", pips,
"\n",DoubleToStr(OCP,5),
"\n","BreakEven is: ", DoubleToStr(average,5),
"\n");



//----
}
  #3 (permalink)  
Alt 27.02.13
Neues Mitglied
 
Registriert seit: Oct 2011
Beiträge: 13
enni01 befindet sich auf einem aufstrebenden Ast
Standard

Danke!
Ich werds mal versuchen.
  #4 (permalink)  
Alt 27.02.13
Neues Mitglied
 
Registriert seit: Oct 2011
Beiträge: 13
enni01 befindet sich auf einem aufstrebenden Ast
Standard

Läuft bei mir leider nicht, da er sagt das Variablen nicht definiert sind.
z.B.
Lots
Profit
  #5 (permalink)  
Alt 27.02.13
Mitglied
 
Registriert seit: Jan 2012
Beiträge: 142
Hoschie befindet sich auf einem aufstrebenden Ast
Standard

Hoi,

die Variablen musst du global definieren
double gProfit,gOCP,OT,gAverage,gLots; --> global

Gruss,
Hoschie
  #6 (permalink)  
Alt 27.02.13
Neues Mitglied
 
Registriert seit: Oct 2011
Beiträge: 13
enni01 befindet sich auf einem aufstrebenden Ast
Standard

Danke
aber jetzt teste ich
  #7 (permalink)  
Alt 27.02.13
Neues Mitglied
 
Registriert seit: Oct 2011
Beiträge: 13
enni01 befindet sich auf einem aufstrebenden Ast
Standard

Leider setzt er nicht automatisch den SL wenn der Breakeven erreicht wurde.
  #8 (permalink)  
Alt 05.03.13
Neues Mitglied
 
Registriert seit: Oct 2011
Beiträge: 13
enni01 befindet sich auf einem aufstrebenden Ast
Standard

Kann mir vllt jemand sagen, an welcher stelle im EA der eigentliche Satz für das setzen des SL auf das Einstiegsniveau ist?
  #9 (permalink)  
Alt 05.03.13
Mitglied
 
Registriert seit: Jan 2012
Beiträge: 142
Hoschie befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von enni01 Beitrag anzeigen
Kann mir vllt jemand sagen, an welcher stelle im EA der eigentliche Satz für das setzen des SL auf das Einstiegsniveau ist?
Hoi,

die Methode BreakEven()

liefert dir den BreakEven Kurs. Entweder setzt den S/L schon in dieser Methode BreakEven, oder später, wenn average > 0 ist, dann setze S/L.
if (OT == OP_BUY)
{
average = OCP - (pips*Point);
OrderModify(OrderTicket(),OrderOpenPrice(),average ,...
}
if (OT == OP_SELL)
{
average = OCP + (pips*Point);
OrderModify(OrderTicket(),OrderOpenPrice(),average ,...
}

Gruss,
Hoschie
Thema geschlossen

Lesezeichen

Stichworte
break even, breakeven, mql4, programmierung, programmierung metatrader


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 16: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.
-----------------------------------------------------------------------------------------------------------------------------