16.04.17
|
Gesperrter Benutzer
|
|
Registriert seit: Mar 2017
Beiträge: 8
|
|
1 Order pro Signal
Hallo Leute, ich brauch mal Hilfe. Ich möchte wenn sich 2 MA Indikatoren kreuzen entweder Sell oder Buy Order geöffnet wird, das klappt auch ganz gut soweit. Nur jetzt hab ich ein Problem, wenn sich der MA gekreuzt hat, wird z.b. ein Sell Order geöffnet jetzt schließt sich der Sell Order mittels ST und weil die MAs noch immer gekreuzt sind öffnet sich gleich ein neuer Order dies möchte ich aber verhindern. Ein Beispiel: Wenn nach 5 Kerzen kein Signal mehr da ist so öffnet sich auch kein weiterer Order. Ich hab versucht es mit Bars zu realisieren aber irgendwie bekomme ich es nicht hin.
Vielen Dank schonmal im Voraus.
PHP-Code:
input double TakeProfit =500;
input double StopLoses =400;
input double Lots =0.01;
double MagicNumber = 2331;
double MA_kurz,MA_lang;
int ticket,total;
void OnTick(void)
{
//Indikatoren.
MA_kurz=iMA(Symbol(),0,28,0,MODE_LWMA,PRICE_CLOSE,0);
MA_lang=iMA(Symbol(),0,144,0,MODE_LWMA,PRICE_CLOSE,0);
//Buy oder Sell.
total=OrdersTotal();
if(total<1)
{
//Prüfen ob genug Geld noch da ist.
if(AccountFreeMargin()<(1000*Lots))
{
Print("We have no money. Free Margin = ",AccountFreeMargin());
return;
}
//Testen ob ein Buy Signal vorliegt.
if(MA_kurz>MA_lang)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoses*Point,Ask+TakeProfit*Point,"macd sample",MagicNumber,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("BUY order opened : ",OrderOpenPrice());
}
else
Print("Error opening BUY order : ",GetLastError());
return;
}
//Testen ob ein Sell Signal vorliegt.
if(MA_kurz<MA_lang)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoses*Point,Bid-TakeProfit*Point,"macd sample",MagicNumber,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("SELL order opened : ",OrderOpenPrice());
}
else
Print("Error opening SELL order : ",GetLastError());
//Exit
return;
}
}
}
|