Einzelnen Beitrag anzeigen
  #46 (permalink)  
Alt 26.06.15
pako pako ist offline
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 224
pako befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von saro2018 Beitrag anzeigen
....
Code:
//+------------------------------------------------------------------+
//|                                                     saro2018.mq4 |
//+------------------------------------------------------------------+
#property strict
int StopLoss   =10;
int TakeProfit =10;
int Slippage    =2;
double Lot     =0.01;
int LastTyp=-1;
int Magic=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(Digits()==5 || Digits()==3)//+------------------------------------------------------------------+
     {                           //| @traderdoc prüfung                                               |
      TakeProfit*=10;            //+------------------------------------------------------------------+
      StopLoss*=10;
      Slippage *=10;
     }
     
     //prüfung
     //prüfung
     //prüfung
     //prüfung
     //u.s.w
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
     //prüfung
     //prüfung
     //prüfung
     //prüfung
     //u.s.w
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
     //prüfung
     //prüfung
     //prüfung
     //prüfung
     //u.s.w
//---
   if(OrdersTotal()==0)
     {
      if(isCloseLastPosByStopLoss())
        {
         if(LastTyp==0)
           {
            if(OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,NormalizeDouble(OrderOpenPrice()+StopLoss*Point(),Digits()),NormalizeDouble(OrderOpenPrice()-TakeProfit*Point(),Digits()),"Sell",Magic,0,clrGreen)) Print("OK Sell");
            else Print(GetLastError());
           }
         if(LastTyp==1)
           {
            if(OrderSend(Symbol(),OP_BUY,Lot,Ask,Slippage,NormalizeDouble(OrderOpenPrice()-StopLoss*Point(),Digits()),NormalizeDouble(OrderOpenPrice()+TakeProfit*Point(),Digits()),"Buy",Magic,0,clrGreen)) Print("OK Buy");
            else Print(GetLastError());
           }
        }
     }
  }
//+------------------------------------------------------------------+
bool isCloseLastPosByStopLoss()
  {
   int      Pos=-1;
   datetime Zeit=0;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2)
              {
               if(Zeit<OrderCloseTime())
                 {
                  Zeit=OrderCloseTime();
                  Pos=i;
                  LastTyp=OrderType();
                 }
              }
           }
        }
     }
   if(OrderSelect(Pos,SELECT_BY_POS,MODE_HISTORY))
     {
      if(NormalizeDouble(OrderClosePrice(),5)==NormalizeDouble(OrderStopLoss(),5))
        {
         return(True);
        }
     }
   return(False);
  }
//+------------------------------------------------------------------+
prüfen MarketInfo(Symbol(),MODE_STOPLEVEL)
prüfen, erlaubt Brocker sofort SL,TP senden
oder SL,TP=0, und dann OrderModify

nicht vergessen "traderdoc prüfung" sonst beißt wieder

Geändert von pako (26.06.15 um 11:02 Uhr)