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.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43265
Benutzer: 7.220
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 11 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

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

Empfehlungen

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 09:40 Uhr.





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