Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 16.04.17
Richertn Richertn ist offline
Gesperrter Benutzer
 
Registriert seit: Mar 2017
Beiträge: 8
Richertn befindet sich auf einem aufstrebenden Ast
Standard 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;
      }
      
   
   }
   
   }