Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
Rewrite from MQL to TWS language

Hello guys is here someone who has will to rewrite this algo for DAX futures to other language #maybe for some ETF based on DAX? I am really amateur and I would like to see real revenues from this strategy I am trading it manually and it is winning yet. But I have not good timing and sometimes I can not put orders, because I am working long hours.
If you need some details about strategy please contact me thank you very much.

input double Lots=1;  
input datetime acttime=D'09:05:00';  
#one hour after eurex opening  
input datetime acttime2=D'09:05:00';  
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

bool terazZastav=false;  
int TradeDay=-1;  
int TradeH=-1;  
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+


//int start()
//{
// while(true)
//  {
// Print("ssssss");
// Sleep(100);
//  }
//}

//+------------------------------------------------------------------+  
//|                                                                  |
//+------------------------------------------------------------------+
void CheckForClose()  
  {  
   for(int i=0;i<OrdersTotal();i++)  
     {  
      if(OrderSelect(i,SELECT_BY_POS)==false) break;

      // bool   HitTP=MathAbs(OrderTakeProfit()-OrderClosePrice())<MathAbs(OrderStopLoss()-OrderClosePrice());  
      // Print("Orderprofit  "+OrderTicket()+"# ="+HitTP);  
      //double dps=OrderTakeProfit();     // TakeProfit of order  
      // double Profit=OrderProfit();

      // Print("Orderprofit  "+OrderTicket()+"# = "+ OrderExpiration());

      OrderDelete(OrderTicket(),clrDarkGreen);

      //if(OrderMagicNumber()!=16384 || OrderSymbol()!=Symbol()) continue;  
      //--- check order type  
      //Print("Orderprofit  "+ OrderTicket() +"# =" ,OrderTakeProfit());  
      //if(OrderType()==OP_BUYSTOP)  
      //  {

      //  if(Open[1]>ma && Close[1]<ma)  
      //  {  
      // if(!OrderDelete(OrderTicket(),clrDarkGreen)){  
      // Print("OrderClose error ",GetLastError());  
      //  }  
      // }  
      // break;  
      // }

      // if(OrderType()==OP_SELLSTOP)  
      // {

      // if(Open[1]<ma && Close[1]>ma)  
      //{  
      // if(!OrderDelete(OrderTicket(),clrDarkGreen)){  
      //Print("OrderClose error ",GetLastError());  
      //  }  
      // }  
      // break;  
      //  }  
     }  
  }  
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick(void)  
  {  
//CheckForClose();
   int vTradeDay=DayOfWeek();

   int   ticket1,ticket2,total;  
   datetime time2=TimeCurrent();  
   int m=TimeMinute(time2);  
   int h=TimeHour(time2);


   int m2=TimeMinute(acttime);  
   int h2=TimeHour(acttime);

   int m3=TimeMinute(acttime2);  
   int h3=TimeHour(acttime2);

   if(TradeH!=h)  
     {  
      //CheckForClose();  
      TradeH=h;  
     }

   if(TradeDay!=vTradeDay && m==m2 && h==h2)  
     {  
      terazZastav=false;  
      TradeDay=vTradeDay;  
      CheckForClose();  
      //Sleep(50);  
     }

   if(terazZastav==false)  
     {

      if(m==m2 && h==h2)  
        {

         double highest = High[iHighest(Symbol(),PERIOD_D1,MODE_HIGH,1,0)];  
         double lowest  = Low[iLowest(Symbol(),PERIOD_D1,MODE_LOW,1,0)];

         double plus3H = highest +  0.00004;  
         double plus3L = lowest -  0.00004;

         //Print("------------------------------------");

         // int ticket=OrderSend(Symbol(),OP_BUY,1,price,3,stoploss,takeprofit,"My order",16384,0,clrGreen);  
         // int  OrderSend(  
         // string   symbol,              // symbol  
         // int      cmd,                 // operation  
         //double   volume,              // volume  
         //double   price,               // price  
         // int      slippage,            // slippage  
         // double   stoploss,            // stop loss  
         //double   takeprofit,          // take profit  
         //string   comment=NULL,        // comment  
         //int      magic=0,             // magic number  
         //datetime expiration=0,        // pending order expiration  
         //color    arrow_color=clrNONE  // color  
         // );


         ticket1=OrderSend(Symbol(),OP_BUYSTOP,Lots,plus3H,3,Bid-0.00013,plus3H+0.00025,"pato1",16384,0,clrGreen);

         ticket2=OrderSend(Symbol(),OP_SELLSTOP,Lots,plus3L,3,Bid+0.00012,plus3L-0.00025,"pato2 ",16384,0,clrAqua);  
         if(ticket1>0)  
           {

            terazZastav=true;

            if(OrderSelect(ticket1,SELECT_BY_TICKET,MODE_TRADES))  
              {  
               //Alert("BUY order opened : ",OrderOpenPrice());  
              }  
           }  
         else  
         // Print("Error opening BUY order : ",GetLastError());  
            return;

         if(ticket2>0)  
           {  
            terazZastav=true;

            if(OrderSelect(ticket1,SELECT_BY_TICKET,MODE_TRADES))  
              {  
               //Alert("BUY order opened : ",OrderOpenPrice());  
              }  
           }  
         else  
         // Print("Error opening BUY order : ",GetLastError());  
            return;


         //Alert("  "+plus3H+" - "+plus3L);

        }

     }  
//---
  }  
//+------------------------------------------------------------------+