Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Hallo Wölfe
Ich weiß, dass dieses Thema schon einmal behandelt wurde, aber kann mir jemand einen Code zeigen, der nur 1 Handel pro Bar zulässt? Danke.
Das funktioniert bei mir
datetime LastOpenTime=0;
//////////////////////////////////////////
int Bestellung;
for(int t=0;t<OrdersTotal();t++)
{
if(OrderSelect(t, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumbers && OrderType() == OP_SELL)
{
if(OrderOpenTime()>LastOpenTime)LastOpenTime=OrderOpenTime();
}
}
}
Dann füge ich es einfach in meinen Code ein
if(LetzteÖffnungszeit0)
{ OrderSend(blah blah
Time[0] ist der Beginn der Kerze Ihres Zeitrahmens, also stellen Sie sicher, dass Sie den richtigen Zeitrahmen wählen.
Das funktioniert bei mir
datetime LastOpenTime=0;
//////////////////////////////////////////
....................
Time[0] ist der Beginn der Kerze Ihres Zeitrahmens. Stellen Sie also sicher, dass Sie den richtigen Zeitrahmen wählen.Dies ist vielleicht ein bisschen einfacher:
datetime LastOpenTime; //Global var
[/CODE]
[CODE]
int init()
{
LastOpenTime=Time[0];
}
int start()
{
................
if(LastOpenTime!=Time[0])
{
// do your trade code
LastOpenTime=Time[0];
}
..............
return(0);
}Ihr "Handelscode" wird nur einmalig für eine Kerze ausgeführt. Es wird kein Handel mehr auf dieser Kerze stattfinden, auch wenn Sie Ihren MT4 schließen und ihn wieder einschalten. Aber bitte beachten Sie, wenn Sie den EA bei einer Kerze um 17 Uhr aktivieren, wird auch bei dieser Kerze kein Handel stattfinden, Sie müssen auf die nächste Kerze warten.
Ich weiß, dass dieses Thema bereits behandelt wurde, aber kann mir jemand einen Code zeigen, der nur 1 Handel pro Bar zulässt? Danke.
Global, dies vor init() einfügen
In the order placement and/or order close stuff, wrap it in this:
{
if blah blah blah, gimme pips // not actual functions but you get the idea
if blah blah blah, close orders // um
}Common function outside main loop:
[CODE]//--- returns true if current bar just formed
bool NewBar()
{
if(PreviousBar<Time[0])
{
PreviousBar = Time[0];
return(true);
}
else
{
return(false);
}
return(false);
}Hilfe bei der Programmierung
Hallo,
Ich habe mich bemüht, einige Dinge zu programmieren, aber ich bin auf eine Mauer gestoßen. Also habe ich etwas ganz einfaches versucht. Wenn ich "Print("Five");" auskommentiere und das Programm teste, druckt es nur "Yahooooooo". (Nun, es druckt auch "Eins"). Wenn ich nun "Print("Five");" auskommentiere, wird nicht einmal "Yahooooooo" gedruckt. Was übersehe ich?
Alle schwebenden und offenen Aufträge schließen, wenn 1 Trade den TP erreicht
Hallo,
Ich versuche, einen Code in meinem EA zu schreiben, der alle schwebenden und offenen Aufträge schließt, sobald 1 Trade den TP erreicht hat. Unten ist die Codes, die ich verwendet, scheint nicht zu funktionieren. Kann jemand einen Blick und beraten, was fehlt. Danke!
if( PreviousOpenOrders > OpenOrders )
{
for( cnt = OrdersTotal()-1; cnt >= 0; cnt-- )
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
Modus = OrderType();
if( OrderSymbol() == Symbol() &&
OrderMagicNumber()==Magic)
{
if( mode == OP_BUY ) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Blue);
if( mode == OP_SELL ) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Red);
if (mode == OP_SELLLIMIT) OrderDelete(OrderTicket());
if (mode == OP_BUYLIMIT) OrderDelete(OrderTicket());
}
}
}
}
Verwenden Sie Bid bzw. Ask anstelle von OrderClosePrice()...
Verwenden Sie Bid und Ask jeweils anstelle von OrderClosePrice()...
Hallo ralph,
kannst du mir helfen, ein Beispiel zu geben. Danke für die Hilfe.
Hallo, ich habe mein Bestes getan, um einige Dinge zu programmieren, aber ich bin auf eine Mauer gestoßen. Also habe ich etwas ganz einfaches versucht. Wenn ich "Print("Five");" auskommentiere und das Programm teste, wird es nur "Yahooooooo" ausgeben. (Nun, es druckt auch "Eins"). Wenn ich nun "Print("Five");" auskommentiere, wird nicht einmal "Yahooooooo" gedruckt. Was übersehe ich?
Wenn Sie keine Klammern verwenden, wird nur eine Zeile ausgeführt. Es hängt davon ab, was Sie tun wollen, aber Sie sollten es so machen:
{
Print("Five");
Print("Yahoooooooooooooooooooooooo");
}if( mode == OP_BUY ) OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Blue);
if( mode == OP_SELL ) OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Red);
Stop einmal verschieben
Hier ist mein Code, um den Stoploss nach einem bestimmten Gewinn auf den Breakeven zu verschieben. Ist daran etwas falsch?
if(MoveStopOnce && MoveStopWhenPrice > 0) {
if(Bid - OrderOpenPrice() == Point * MoveStopWhenPrice) {
OrderModify(OrderTicket(),OrderOpenPrice(), Bid - Point * MoveStopTo, OrderTakeProfit(), 0, Red);
if (!EachTickMode) BarCount = Bars;
continue;
}
}