Wie programmiert man? - Seite 248

 
 

Hilfe - wie modifiziere ich einen EA, um bestehende Trades offen zu lassen?

Ich brauche eine ziemlich einfache Lösung, wenn jemand helfen kann

Ich habe einen EA, der jetzt profitabel ist, aber er öffnet einen Handel und schließt einen Handel zur gleichen Zeit, so dass nur 1 Handel zu jeder Zeit aktiv ist.

Ich möchte den EA auf einem bestehenden Konto laufen lassen, auf dem bereits einige Trades offen sind. Ich möchte diese Trades laufen lassen, aber der EA soll weiterhin seine eigenen Trades öffnen und schließen, wenn einer der bestehenden Trades profitabel wird, schließt er diese.

Diese Seite Anforderung der Schließung der bestehenden Trades bei Gewinn kann ignoriert werden, wenn das wird es einfach zu halten, kann ich diese manuell schließen, wenn nötig.

Mein EA verwendet im Moment Folgendes

if(val1 > val2) {trade_text = " BUY trade open";trend_text = "UP";BV=1;break;}

if(val1 < val2) {trade_text = " SELL trade open";trend_text = "DOWN";SV=1;break;}}

// Expert Money Management

if(MM){if(Risiko100){Kommentar("Ungültiger Risikowert.");return(0);}

else{MML=MathFloor((AccountFreeMargin()*AccountLeverage()*Risk*Point*100)/(Ask*MarketInfo(Symbol(),MODE_LOTSIZE)*MarketInfo(Symbol(),MODE_MINLOT)))*MarketInfo(Symbol(),MODE_MINLOT);}}

if(MM==false){MML=Lots;}

// Experten-Init-Positionen

int cnt=0,OP=0,OS=0,OB=0,CS=0,CB=0;OP=0;for(cnt=0;cnt<OrdersTotal();cnt++){OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if((OrderType()==OP_SELL||OrderType()==OP_BUY)&&OrderSymbol()==Symbol()&&((OrderMagicNumber()==Magic)||Magic==0))OP=OP+1;}

if(OP>=1){OS=0; OB=0;}OB=0;OS=0;CB=0;CS=0;

// Expertenbedingungen zur Eröffnung der Position

if(SV>0){OS=1;OB=0;}if(BV>0){OB=1;OS=0;}

// Expertenbedingungen für das Schließen der Position

if((SV>0)||(RealSL_Enabled&&(OrderOpenPrice()-Bid)/Point>=RealSL)||(RealTP_Enabled&&(Ask-OrderOpenPrice())/Point>=RealTP)){CB=1;}

if((BV>0)||(RealSL_Enabled&&(Ask-OrderOpenPrice())/Point>=RealSL)||(RealTP_Enabled&&(OrderOpenPrice()-Bid)/Point>=RealTP)){CS=1;}

for(cnt=0;cnt<OrdersTotal();cnt++){OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if(OrderType()==OP_BUY&&OrderSymbol()==Symbol()&&((OrderMagicNumber()==Magic)||Magic==0))

{if(CB==1){OrderClose(OrderTicket(),OrderLots(),Bid,Slip,Aqua);temp = Bid;return(0);}}

if(OrderType()==OP_SELL&&OrderSymbol()==Symbol()&&((OrderMagicNumber()==Magic)||Magic==0)){

if(CS==1){OrderClose(OrderTicket(),OrderLots(),Ask,Slip,Gold);temp = Bid;return(0);}}}double SLI=0,TPI=0;int TK=0;

// Wert der offenen Expertenposition

if((AddP()&&Add_Positions&&OP<=MaxOrders)||(OP==0&&!Add_Positions)){

if(OS==1){if(TP==0)TPI=0;sonst TPI=Bid-TP*Point;if(SL==0)SLI=0;sonst SLI=Bid+SL*Point;OS=0;return(0);}

if(OB==1){if(TP==0)TPI=0;sonst TPI=Ask+TP*Point;if(SL==0)SLI=0;sonst SLI=Ask-SL*Point;{TK=OrderSend(Symbol(),OP_BUY,MML,Ask,Slip,SLI,TPI,OrSt,Magic,0,Blue);OB=0;return(0);}}

for(j=0;j<OrdersTotal();j++){if(OrderSelect(j,SELECT_BY_POS,MODE_TRADES)){if(OrderSymbol()==Symbol()&&((OrderMagicNumber()==Magic)||Magic==0)){TrP();}}}return(0);}

// Expertenanzahl der Aufträge

int CntO(int Typ,int Magie){int _CntO;_CntO=0;

for(int j=0;j<OrdersTotal();j++){OrderSelect(j,SELECT_BY_POS,MODE_TRADES);if(OrderSymbol()==Symbol()){if((OrderType()==Type&&(OrderMagicNumber()==Magic)||Magic==0))_CntO++;}}return(_CntO);}

//expert breakeven

void TrP(){double pb,pa,pp;pp=MarketInfo(OrderSymbol(),MODE_POINT);if(OrderType()==OP_BUY){pb=MarketInfo(OrderSymbol(),MODE_BID);

if(BE>0){if((pb-OrderOpenPrice())>BE*pp){if((OrderStopLoss()-OrderOpenPrice())<0){ModSL(OrderOpenPrice()+0*pp);}}}

// Experten-Trailing-Stop

if(TS>0){if((pb-OrderOpenPrice())>TS*pp){if(OrderStopLoss()<pb-(TS+TS_Step-1)*pp){ModSL(pb-TS*pp);return;}}}}

if(OrderType()==OP_SELL){pa=MarketInfo(OrderSymbol(),MODE_ASK);if(BE>0){if((OrderOpenPrice()-pa)>BE*pp){if((OrderOpenPrice()-OrderStopLoss())<0){ModSL(OrderOpenPrice()-0*pp);}}}

if(TS>0){if(OrderOpenPrice()-pa>TS*pp){if(OrderStopLoss()>pa+(TS+TS_Step-1)*pp||OrderStopLoss()==0){ModSL(pa+TS*pp);return;}}}}}

//expert stoploss

void ModSL(double ldSL){bool fm;fm=OrderModify(OrderTicket(),OrderOpenPrice(),ldSL,OrderTakeProfit(),0,CLR_NONE);}

//expert add positions Funktion

bool AddP(){int _num=0; int _ot=0;

for (int j=0;j<OrdersTotal();j++){if(OrderSelect(j,SELECT_BY_POS)==true && OrderSymbol()==Symbol()&&OrderType()<3&&((OrderMagicNumber()==Magic)||Magic==0)){

_num++;if(OrderOpenTime()>_ot) _ot=OrderOpenTime();}}if(_num==0) return(true);if(_num>0 && ((Time[0]-_ot))>0) return(true);else return(false);}

 

/*

// Expertenbedingungen zum Schließen der Position

if((SV>0)||(RealSL_Enabled&&(OrderOpenPrice()-Bid)/Point>=RealSL)||(RealTP_Enabled&&(Ask-OrderOpenPrice())/Point>=RealTP)){CB=1;}

if((BV>0)||(RealSL_Enabled&&(Ask-OrderOpenPrice())/Point>=RealSL)||(RealTP_Enabled&&(OrderOpenPrice()-Bid)/Point>=RealTP)){CS=1;}

for(cnt=0;cnt<OrdersTotal();cnt++){OrderSelect(cnt ,SELECT_BY_POS,MODE_TRADES);

if(OrderType()==OP_BUY&&OrderSymbol()==Symbol()&&( (OrderMagicNumber()==Magic)||Magic==0))

{if(CB==1){OrderClose(OrderTicket(),OrderLots(),Bi d,Slip,Aqua);temp = Bid;return(0);}}

if(OrderType()==OP_SELL&&OrderSymbol()==Symbol()&& ((OrderMagicNumber()==Magic)||Magic==0)){

if(CS==1){OrderClose(OrderTicket(),OrderLots(),Ask ,Slip,Gold);temp = Bid;return(0);}}}double SLI=0,TPI=0;int TK=0;

*/

füge nur /*zu Beginn der Expertenbedingungen hinzu, um die Position zu schließen

und */ am Ende

msn aboukalil ( at) hotmail.fr

 

Danke aboukalil für die schnelle Antwort, aber ich verstehe nicht ganz, wenn ich das heraus editiere, werde ich keinen Close-Befehl haben, es wird meine bestehenden Trades verlassen, aber mein EA wird nie seinen eigenen Trade schließen, um in die entgegengesetzte Richtung zu öffnen?

Können Sie mir dabei ein wenig helfen?

 

Hallo an alle.....

Neugierig, ob jemand weiß, oder besitzen eine generische Indikator, dass man jede Linie-basierte Single-Buffer-Indikator in der iCustoms der generischen ein, so dass, wenn der generische Indikator zu einem Diagramm angehängt ist, wird es als zweifarbige Histogramm-Bar-Indikator, dessen Farbe ändern basiert auf der Steigung der iCustomed indy?

Für jede Hilfe bin ich dankbar.

 

Sehr geehrte Damen und Herren,

Wie kann ich einen Indikator in eine csv-Datei umwandeln?Danke.

 
biddick:
Sehr geehrte Damen und Herren, wie kann ich einen Indikator in eine CSV-Datei umwandeln?Danke.

Meinen Sie, wie man in einer CSV-Datei speichert?

Prüfen Sie dies:

Werkzeuge - .csv reader

 
 

Bitte helfen Sie, dieses kleine Skript zu ändern

Hallo,

Könnte mir jemand helfen, dieses kleine Skript für die Auftragseingabe zu ändern

so dass die gehandelte Lotsize eine Funktion von einem % riskiert der Kontogröße ist

Ich weiß, dass diese Codezeile irgendwo eingefügt werden sollte, aber ich habe keine Ahnung, wie ich sie programmieren soll

double Risk = RiskPercent / 100;

if (UseMoneyMgmt)

Lots=NormalizeDouble(AccountBalance()*Risk/stoploss/(MarketInfo(Symbol(),MODE_TICKVALUE)),2);

Vielen Dank im Voraus

Dateien:
 

ausstehende Bestellung

Hallo!

wie verwalte ich schwebende Aufträge? (mit mt4 api)

wenn mein Programm eine TT_ORDER_PENDING_OPEN (Handelsart) erhalten hat

und eine PUMP_UPDATE_ACTIVATION in der Pumping Notification erhalten hat