Einzelnen Beitrag anzeigen
  #4 (permalink)  
Alt 12.07.17
McMenneman McMenneman ist offline
Neues Mitglied
 
Registriert seit: Jul 2017
Beiträge: 10
McMenneman befindet sich auf einem aufstrebenden Ast
Red face

Schaut mal was ich da jetzt gebaut habe...
läuft auf den DAX_1min
1) EA soll eine Stoporder platzieren und zwar pro neuer Minute/Candle eine neue, respektive im aktuellen Fall zb. auf das High[1]+6
2) wurde Stop nicht getriggert soll er nach 1min/Candle gestrichen werden
3) Insgesamt soll es so sein das bestehende Orders im Account zb. diskritionäre oder durch andere EAs nicht beachtet werden.

PHP-Code:
int OrderNumber;
int BarsSinceEntry;

bool IsNewCandle()
{
   static 
int BarsOnChart=0// static Var. wird nur ein mal gesetzt und ist nur in der Function sichtbar = Local Variable
   
if(Bars == BarsOnChart)
   return(
false);
   
BarsOnChart Bars;
   return(
true);
}

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
 
//---
   
return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
 
//Überprüfung ob neue Candle vorliegt 
  
if(IsNewCandle()){

//check bzgl Order des EAs
  
bool orderset false;
   for(
int i=OrdersTotal()-1i>=0i--)
   {
   if(
OrderSelect(i,SELECT_BY_POS))
   {
      if(
OrderMagicNumber() == 202 )
         
orderset true;
   }
 }

//simple Test Order die einfach platziert bei Neuer Candle platziert werden soll => und Streichung der vorherigen StopOrder
   
if(orderset=true)
   {
      if (
0<1//Bedingung Hauptsache es geht die Order raus
      
{
         
OrderNumber OrderSend(Symbol(), OP_BUYSTOP,0.1,High[1]+65,125000,"Test",202,TimeCurrent()+660,Blue);
         
BarsSinceEntry=TimeCurrent();
      }
   }


//pending Orders streichen         
 
if (BarsSinceEntry && TimeCurrent() > BarsSinceEntry PeriodSeconds(PERIOD_CURRENT)) {
   for (
int i OrdersTotal()-1>= 0i--) {
      if (
OrderSelect(iSELECT_BY_POSMODE_TRADES)) {
         if (
OrderSymbol() == Symbol() && OrderMagicNumber() == 202) {
            if (
OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP) {
               
bool res OrderDelete(OrderTicket());
               if (
resBarsSinceEntry 0;
               break;
               Print(
GetLastError());
            }
         }
      }
   }
}   
         

 
         } 
  
}
//+------------------------------------------------------------------+ 
Wenn ich es so mache platziert der EA "ca."? jede neue Minute eine neue StpOrder , streicht aber die vorherige nicht.

Wie gesagt, bin noch ganz am Anfang...was mache ich falsch!?