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: 4972
Beiträge: 43252
Benutzer: 7.216
Aktive Benutzer: 84
Links: 84
Wir begrüßen unseren neuesten Benutzer: bb1107
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 2 Tagen
- bb1107
vor einer Woche
- rg-trader
vor 2 Wochen
- toshistyle
vor 2 Wochen
- Robin
vor 3 Wochen
- mMmaanu

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 17.07.19
Neues Mitglied
 
Registriert seit: Jul 2019
Beiträge: 14
Alex60 befindet sich auf einem aufstrebenden Ast
Standard Skript einfügen in fertigen EA

Hallo Leute,

ich hoffe ihr könnt mir helfen.
Ich habe einen fertigen EA vorliegen, da wollte ich jetzt gerne einfertiges Skript
einfügen oder bei Hilfe ein Skript das einen Trailing Stop hat und oder eine Option das er den SL auf Break even zieht.
Nur weiss ich nicht genau wo an welcher Stelle ich das fertige Skript einfügen müsste beim fertigen EA.
Da ich der Meinung bin das dieser mit nem Trailing Stop oder ner Break even option besser wäre.
  #2 (permalink)  
Alt 17.07.19
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Alex60 Beitrag anzeigen
Ich habe einen fertigen EA vorliegen, da wollte ich jetzt gerne einfertiges Skript
einfügen oder bei Hilfe ein Skript das einen Trailing Stop hat und oder eine Option das er den SL auf Break even zieht.
Nur weiss ich nicht genau wo an welcher Stelle ich das fertige Skript einfügen müsste beim fertigen EA.
Da ich der Meinung bin das dieser mit nem Trailing Stop oder ner Break even option besser wäre.
Mit diesen Angaben kann ich persönlich nichts anfangen.
1. wie sollen BreakEven und TrailingStop aktiviert werden
2. und wie sehen die Quellen aus
AVT
  #3 (permalink)  
Alt 17.07.19
Neues Mitglied
 
Registriert seit: Jul 2019
Beiträge: 14
Alex60 befindet sich auf einem aufstrebenden Ast
Standard

Ich habe mir vorgestellt , das der Trailing stop mit in den EA der ja schon fertig ist, it eingebaut wird.
Das er eben den SL mit nachzieht.
Das skript hab ich aus dem mql forum:
Zitat:
//--------------------------------------------------------------------
extern bool OnlyProfit = true; //òîëüêî ïðîôèòíûå îðäåðà
extern bool OnlyWithoutLoss = false;//òîëüêî áåç óáûòîê
extern int Magic = 0;
extern int TrailingStop = 0; //åñëè= 0, òî òðåéëèíã ïî ôðàêòàëàì èëè ñâå÷àì
extern int Tip.Fr.or.Candl = 1; //åñëè= 0, òî òðåéëèíã ïî ôðàêòàëàì
//åñëè= 1, òî òðåéëèíã ïî ñâå÷àì
//--------------------------------------------------------------------
int delta, n,DIGITS;
datetime TIME;
double BID,ASK,POINT;
//--------------------------------------------------------------------
int start()
{
ObjectCreate("info", OBJ_LABEL, 0, 0, 0);
ObjectSet("info", OBJPROP_CORNER, 1);
ObjectSet("info", OBJPROP_XDISTANCE, 200 );
ObjectSet("info", OBJPROP_YDISTANCE, 0);
string txt;
POINT=MarketInfo(Symbol(),MODE_POINT);
DIGITS=MarketInfo(Symbol(),MODE_DIGITS);
if (TrailingStop!=0 && TrailingStop<MarketInfo(Symbol(),MODE_STOPLEVEL))
TrailingStop=MarketInfo(Symbol(),MODE_STOPLEVEL);
if (Magic==0) txt=StringConcatenate("total orders ",Symbol());
else txt=StringConcatenate("orders ",Symbol()," Magic ",Magic);
if (TrailingStop!=0) txt=StringConcatenate(" ",TrailingStop," ï ");
else if (Tip.Fr.or.Candl==0) txt=" Fractals "; else txt=" ïî ñâå÷àì ";
Comment("Start TrailingStop ",txt,TimeToStr(TimeCurrent(),TIME_MINUTES));
while(true)
{
RefreshRates();
BID = MarketInfo(Symbol(),MODE_BID);
ASK = MarketInfo(Symbol(),MODE_ASK);
TIME = iTime(Symbol(),0,0);
delta = MarketInfo(Symbol(),MODE_STOPLEVEL);
if (delta<TrailingStop)delta=TrailingStop;
ObjectSetText("info",StringConcatenate("TrailingSt op ",txt," Orders ", n," ",
TimeToStr(TimeCurrent(),TIME_SECONDS)),8,"Arial",A qua);
TrailingStop();
if (n==0) break;
Sleep(1000);
}
Comment("Íåò îòêðûòûõ îðäåðîâ. Çàêðûòèå ñêðèïòà ",
TimeToStr(TimeCurrent(),TIME_MINUTES));
ObjectDelete("SL Buy");
ObjectDelete("SL Sell");
ObjectDelete("info");
ObjectDelete("SL-");
ObjectDelete("SL+");
}
//--------------------------------------------------------------------
void TrailingStop()
{
int tip,Ticket;
bool error;
double StLo,OSL,OOP;
n=0;
for (int i=0; i<OrdersTotal(); i++)
{ if (OrderSelect(i, SELECT_BY_POS)==true)
{ tip = OrderType();
if (tip<2 && OrderSymbol()==Symbol() && (OrderMagicNumber()==Magic || Magic==0))
{
OSL = OrderStopLoss();
OOP = OrderOpenPrice();
Ticket = OrderTicket();
if (tip==OP_BUY)
{ n++;
StLo = SlLastBar(1,BID,Tip.Fr.or.Candl,TrailingStop);
if (StLo <= OOP && OnlyProfit) continue;
if (OSL >= OOP && OnlyWithoutLoss) continue;
if (StLo > OSL)
{ error=OrderModify(Ticket,OOP,NormalizeDouble(StLo, DIGITS),
OrderTakeProfit(),0,White);
Comment("TrailingStop ",Ticket," ",TimeToStr(TimeCurrent(),TIME_MINUTES));
Sleep(500);
if (!error) Comment("Error order ",Ticket," TrailingStop ",
GetLastError()," ",Symbol()," SL ",StLo);
}
}
if (tip==OP_SELL)
{ n++;
StLo = SlLastBar(-1,ASK,Tip.Fr.or.Candl,TrailingStop);
if (StLo==0) continue;
if (StLo >= OOP && OnlyProfit) continue;
if (OSL >= OOP && OnlyWithoutLoss) continue;
if (StLo < OSL || OSL==0 )
{ error=OrderModify(Ticket,OOP,NormalizeDouble(StLo, DIGITS),
OrderTakeProfit(),0,White);
Comment("TrailingStop "+Ticket," ",TimeToStr(TimeCurrent(),TIME_MINUTES));
Sleep(500);
if (!error) Comment("Error order ",Ticket," TrailingStop ",
GetLastError()," ",Symbol()," SL ",StLo);
}
}
}
}
}
}
//--------------------------------------------------------------------
double SlLastBar(int tip,double price, int tipFr, int tral)
{
double fr;
int jj,ii;
if (tral!=0)
{
if (tip==1) fr = BID - tral*POINT;
else fr = ASK + tral*POINT;
}
else
{
if (tipFr==0)
{
if (tip== 1)
for (ii=1; ii<100; ii++)
{
fr = iFractals(NULL,0,MODE_LOWER,ii);
if (fr!=0) if (price-delta*POINT > fr) break;
else fr=0;
}
if (tip==-1)
for (jj=1; jj<100; jj++)
{
fr = iFractals(NULL,0,MODE_UPPER,jj);
if (fr!=0) if (price+delta*POINT < fr) break;
else fr=0;
}
}
else
{
if (tip== 1)
for (ii=1; ii<100; ii++)
{
fr = iLow(NULL,0,ii);
if (fr!=0) if (price-delta*POINT > fr) break;
else fr=0;
}
if (tip==-1)
for (jj=1; jj<100; jj++)
{
fr = iHigh(NULL,0,jj);
if (price+delta*POINT < fr) break;
else fr=0;
}
}
}
if (tip== 1)
{
ObjectDelete("SL Buy");
ObjectDelete("SL-");
ObjectCreate("SL Buy",OBJ_ARROW,0,TIME,fr,0,0,0,0);
ObjectSet ("SL Buy",OBJPROP_ARROWCODE,6);
ObjectSet ("SL Buy",OBJPROP_COLOR, Blue);
ObjectCreate("SL-",OBJ_ARROW,0,TIME,price-delta*POINT,0,0,0,0);
ObjectSet ("SL-",OBJPROP_ARROWCODE,4);
ObjectSet ("SL-",OBJPROP_COLOR, Blue);
}
if (tip==-1)
{
ObjectDelete("SL Sell");
ObjectDelete("SL+");
ObjectCreate("SL Sell",OBJ_ARROW,0,TIME,fr,0,0,0,0);
ObjectSet ("SL Sell",OBJPROP_ARROWCODE,6);
ObjectSet ("SL Sell", OBJPROP_COLOR, Green);
ObjectCreate("SL+",OBJ_ARROW,0,TIME,price+delta*PO INT,0,0,0,0);
ObjectSet ("SL+",OBJPROP_ARROWCODE,4);
ObjectSet ("SL+",OBJPROP_COLOR, Green);
}
return(fr);
}
//--------------------------------------------------------------------
Für Breakeven das er dann irgendwie die trades auf BE setzt
  #4 (permalink)  
Alt 17.07.19
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Alex60 Beitrag anzeigen
Das skript hab ich aus dem mql forum
Leider kann ich mit dem Skript gar nichts anfangen - oder sagen wir mal so - ich kriege da unzählige Fehlermeldungen.
Und ich habe ehrlich gesagt keine Lust, einen Code, der auch noch Fremdsprache drin hat (ich vermute mal wieder russisch) auseinander zu nehmen und wieder zusammen zu setzen.
Zitat:
Zitat von Alex60 Beitrag anzeigen
Für Breakeven das er dann irgendwie die trades auf BE setzt
Irgendwie gibt es weder beim Programmieren noch beim Traden - bei beiden gibt nur feste Regeln, die befolgt werden.
Entweder die Bedingung ist erfüllt, dann wird BE gesetzt, oder sie ist nicht erfüllt, dann eben nicht.

Tut mir leid, aber hier bin ich einfach überfordert. AVT
  #5 (permalink)  
Alt 18.07.19
Neues Mitglied
 
Registriert seit: Jul 2019
Beiträge: 14
Alex60 befindet sich auf einem aufstrebenden Ast
Standard

Das mit den Fehlermeldungen hab ich auch schon bemerkt
hab das gestern mal angeschaut im Editor.
Oder gibts da vllt noch was anderes in der Richtung?
Thema geschlossen

Lesezeichen

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 06:26 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.
-----------------------------------------------------------------------------------------------------------------------------