Wie programmiert man? - Seite 180

 

Problem mit der Schließposition

......

double cena=0;

static int isCrossed = 0;

isCrossed = Gekreuzt (k,d);

if(OrderSelect(ticket, SELECT_BY_POS))

{

c=OrderOpenPrice();

return(0);

}

if (isCrossed>0)

{

cena=((c-Ask)*10000);

return(0);

}

total = OrdersTotal();

if(gesamt < 1)

{

if(isCrossed == 1)

{

ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 1000, cena,

cena , "EMA_CROSS", 12345, 0, Green);

}

....

if(isCrossed == 2)

{

ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 1000, cena,

cena, "EMA_CROSS", 12345, 0, Red);

......

Im Allgemeinen schließt der EA die Position, wenn die EMAs gekreuzt werden und öffnet gleichzeitig eine andere Position.

die Positionen werden geöffnet, aber sie wollen nicht geschlossen werden ;/

bitte helfen

 

Ist es möglich, eine Position zu schließen und eine neue zum gleichen Zeitpunkt zu eröffnen?

(...)

if(OrdersTotal()!=0) {

(...)

OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage, Green ); }

if(OrdersTotal()==0) {

OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, Ask - SL * Point, Ask + TP * Point, NULL, Magic, 0, Green); }

(...)

In diesem Codebeispiel wird die Short-Position beim ersten Tick geschlossen, aber die Long-Position wird nicht sofort eröffnet. Es dauert einen weiteren Tick, um die Long-Position zu öffnen.

Vielen Dank im Voraus :-)

 

Ja, das ist möglich. Fügen Sie einfach die Funktion RefreshRates() zwischen die Operatoren ein.

 
 
pietra`:
...... bitte helfen

Sieht so aus: Ich bin Pietra. Wie lautet mein zweiter Name?

Es ist unmöglich, Ihnen ohne den gesamten Code zu helfen. Entschuldigung.

 

Brauche Hilfe bei der Kodierung

Kann mir jemand bei der MT4-Codierung helfen, um die maximalen und minimalen Eröffnungskurse für EA zu kennen? Es gibt einige Eröffnungen durch einen EA.

Ich habe den folgenden Code gefunden, aber er ist für die Ermittlung der ersten/letzten Transaktionseröffnung.

double GetLastBuyPrice(int Magic)

{

int total=OrdersTotal()-1;

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

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

{

return(OrderOpenPrice());

}

}

return(10000);

}

Wie kann ich den höchsten/niedrigsten Eröffnungspreis einer Transaktion ermitteln?

 

Code

lumanauw:
Kann mir jemand bei der MT4-Codierung helfen, um die maximalen und minimalen Eröffnungskurse für EA zu kennen? Es gibt einige Eröffnungen durch einen EA.

Ich habe einen ähnlichen Code gefunden, aber er ist für das Erkennen der ersten/letzten Transaktionsöffnung.

Double opens[1000] = {0};

double maxopen = 0 ;

double minopen = 1000000 ;

// double GetLastBuyPrice(int Magic)

{

int total=OrdersTotal()-1;

for (int cnt = gesamt ; cnt >=0 ; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

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

{

opens[cnt] = OrderOpenPrice() ;

}

}

for ( cnt = 0 ; cnt <= total ; cnt ++ )

{

if ( opens[cnt] > maxopen ) maxopen = opens[cnt] ;

if ( opens[cnt] < minopen ) minopen = opens[cnt] ;

}

}

Wie kodiert man, um die höchste/niedrigste Transaktionsöffnung zu ermitteln?

hi,

ändern Sie den Code wie oben,

es ist keine Prozedur zum Aufrufen von anderen ...,

fügen Sie sie an der gewünschten Stelle in Ihren EA-Code ein.

OTR

 

Benötige Hilfe bei der Erstellung eines Codes zum Öffnen von mehr als einer Bestellung

Es ist mir nicht gelungen, einen Code hinzuzufügen, um eine zweite Order zu eröffnen.

Ich versuche, 2 Aufträge auf der Grundlage desselben Signals mit unterschiedlichen TP-Levels zu eröffnen.

Unten ist mein Code für die Eröffnung der ersten Order:

Für jede Hilfe bin ich dankbar.

if(SlowSell<0 && FastSell<0 && PrevFastSell==0)

{

ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,Slipage,Bid+StopLoss*Point,Bid-TakeProfit*Point, "MA_Angle_Trader",MagicNumber,0,Red);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SellStop order opened : ",OrderOpenPrice());

}

else Print("Fehler beim Öffnen der SellStop-Order : ",GetLastError());

return(0);

ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,Slipage,Bid+StopLoss*Point,0, "MA_Angle_Trader",MagicNumber,0,Red);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SellStop order opened : ",OrderOpenPrice());

}

else Print("Fehler beim Öffnen der SellStop-Order : ",GetLastError());

return(0);

}

 

Hallo

Ich brauche etwas einfache Codierung Hilfe,

1) Absicherung eines Handels bei einer bestimmten Anzahl von Pips

2) Dann deaktiviert/suspendiert alle weiteren Handel..........

Sicherstellen, dass es nicht wieder absichern, wie ich manuell den abgesicherten Handel schließen.

 
williamcope:
Es ist mir nicht gelungen, Code zum Öffnen einer zweiten Bestellung hinzuzufügen.

Ich versuche, 2 Aufträge auf der Grundlage desselben Signals mit unterschiedlichen TP-Levels zu eröffnen.

unten ist mein Code für die Eröffnung des ersten Auftrags:

Für jede Hilfe bin ich dankbar.

if(SlowSell<0 && FastSell<0 && PrevFastSell==0)

{

ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,Slipage,Bid+StopLoss*Point,Bid-TakeProfit*Point, "MA_Angle_Trader",MagicNumber,0,Red);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SellStop order opened : ",OrderOpenPrice());

}

else Print("Fehler beim Öffnen der SellStop-Order : ",GetLastError());

return(0);

ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,Slipage,Bid+StopLoss*Point,0, "MA_Angle_Trader",MagicNumber,0,Red);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SellStop order opened : ",OrderOpenPrice());

}

else Print("Fehler beim Öffnen der SellStop-Order : ",GetLastError());

return(0);

}

Ersetzen der ersten

return(0);

durch

RefreshRates();