ICHIMOKU-STRATEGIE - Seite 3

 

Ok, im Strategietest funktioniert es jetzt, aber es wird mehr als ein Handel platziert - mehrere pro Minute. Welcher Teil des Codes sollte geändert werden?

Und ich verstehe, dass ihr mittlerweile ziemlich genervt sein müsst, aber wer nicht fragt, bekommt auch nichts.

//+------------------------------------------------------------------+
//|                                              ICHIMOKU_SIMPLE.mq4 |
//|                      Copyright © 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern double Lots = 1.0; 
//----
int start()
   {
   double tenkan_sen=iIchimoku(NULL, 0, 9, 26, 52, MODE_TENKANSEN, 1);
   double kijun_sen=iIchimoku(NULL, 0, 9, 26, 52, MODE_KIJUNSEN, 1);
   int ticket;
//----

// check for long position (BUY) possibility
      if(tenkan_sen>kijun_sen)
         {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+Point,"ichimoku",16384,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(0); 
         
         }   //  added by RaptorUK
            
   // SELL 
     {
      OrderSelect(SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL && // check for opened position 
         OrderSymbol()==Symbol()) // check for symbol
         {
         if(OrderType()==OP_BUY) // long position is opened
            {
            // should it be closed?
            if(tenkan_sen<kijun_sen)   //  removed surplus (  RaptorUK
               {
               OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
               return(0); // exit
               }
            }
         }
      }
  return(0);
   }
 
ToBa:

Ok, im Strategietest funktioniert es jetzt, aber es wird mehr als ein Handel platziert - mehrere pro Minute. Welcher Teil des Codes sollte geändert werden?

Und ich verstehe, dass ihr mittlerweile ziemlich genervt sein müsst, aber wer nicht fragt, bekommt auch nichts.

Verärgert? Nein, ich nicht ... ich versuche nur, euch beim Lernen zu helfen, und ihr scheint das zu tun ... jetzt müsst ihr weiter lernen.
 

Okey dokey, ich weiß, dass es mit dieser Linie zu tun hat.

Aber ich weiß nicht, was die Zahlen bedeuten. Ich habe versucht, einige Teile zu löschen, aber ich bekomme ')' - falsche Parameteranzahl C:\Program Files (x86)\MetaTrader 4\experts\ICHIMOKU_F1.mq4 (21, 51)

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+Point,"ichimoku",16384,0,Green);
 
Lesen Sie die Dokumentation ... klicken Sie hier --> OrderSend
 
ToBa:

Ok, im Strategietest funktioniert es jetzt, aber es wird mehr als ein Handel platziert - mehrere pro Minute.

Zuerst müssen Sie herausfinden, was Sie wollen, dass es zu tun, anstatt mehrere Aufträge jede Minute ... .
 

Ok, ich habe große Fortschritte gemacht. Allerdings wird t/p ausgeführt, sobald der Preis des Paares um 0,0001 steigt.

Der Code sieht jetzt wie folgt aus:

//+------------------------------------------------------------------+
//|                                              ICHIMOKU_SIMPLE.mq4 |
//|                      Copyright © 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern double Lots = 1.0;
//----

int start()
   {
   double tenkan_sen=iIchimoku(NULL, 0, 9, 26, 52, MODE_TENKANSEN, 1);
   double kijun_sen=iIchimoku(NULL, 0, 9, 26, 52, MODE_KIJUNSEN, 1);
   int ticket,total,order_id;
   
// BUY
      total=OrdersTotal();
   if(total<1 && tenkan_sen>kijun_sen)
         {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+Point,"ichimoku",16384,0,Green);
         } 
                      
// SELL 
   if(tenkan_sen<kijun_sen)   
         {
         OrderClose(order_id,1,Ask,3,Red);
         return(0);
         }     
  return(0);
   }
 
ein t/p scheint automatisch platziert zu werden; ich weiß nicht, welchen Teil ich ändern soll
 
ToBa:
ein t/p scheint automatisch platziert zu werden; ich weiß nicht, welchen Teil ich ändern soll
Es ist Teil des OrderSend...
 
Ok, ich weiß jetzt, dass es an dieser Stelle liegt - Ask+*Point, aber anstatt eine Zahl einzugeben, möchte ich, dass das t/p bei tenkan-sen<kijun-sen ist
 
Setzen Sie es auf 0, dann müssen Sie immer wieder prüfen, wann tenkan-sen<kijun-sen und dann, wenn es ist, schließen Sie den Auftrag ... der Nachteil davon ist, dass, wenn Sie einen offenen Auftrag haben und Sie verlieren die Verbindung zum Internet Ihr Handel wird offen bleiben und eine gewinnende Handel kann sich in Verlust Handel.