beton2011

 
Уровень 14

  Моя торговля


График торгового счета beton2011


Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ



Советник по времени

Андрей *hi*  можно вас попросить написать простого советника. Советник должен открывать ордера в таком порядке, все ордера только на покупку или все ордера только на продажу или чередовать, покупка-продажа-покупка-продажа и т.д.

Скажем в советнике выбрали режим только на продажи, открывается первый ордер на продажу, через 5-ть минут этот ордер закрывается с любым результатом, сразу открывается новый ордер на продажу, этот ордер закрывается уже через 15-ть минут и опять открывается новый ордер на продажу но уже на 30-ть минут, вот в током порядке по всем таймфреймам открываются ордера.

Лучше всего наверно сделать в советнике настройку времени для каждого последующего ордера, скажем 10-ть настроек, что бы я смог оптимизировать настройки времени.

Надо еще сделать сброс таймфреймоф до начального по достижению профита в валюте депозита.

Добавьте еще мартингейла с настройкой, если прошлый ордер закрылся с убытком, тогда следующий ордер открывается с увеличенным лотом. Увеличение лотов сбрасывается до начального по достижению профита в валюте депозита.

Возможно потом можно переделать этот советник под торговлю опционами :) 
  • +1
  • Просмотров: 5714
  • 10 сентября 2015, 18:09
  • beton2011
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
Следующая запись в группе  
Открытие рыночного ордера по времени
10 сентября 2015
11 сентября 2015

Брокер для ваших роботов, 15 лет на рынке

Комментарии (26)

+
0
Завтра начну делать.
avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 10 сентября 2015, 19:17
+
0
Начал делать. Советник сложный предупреждаю сразу.
avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 11 сентября 2015, 14:20
+
0
Ок :) 
avatar

  14  beton2011 Автор Сообщений: 895

  • 11 сентября 2015, 14:55
+
0
Пока сделал без чередования и увеличения лота:


//+------------------------------------------------------------------+
//|                                                     TimeOpen.mq4 |
//|                                              Copyright 2015, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property description "Time Open expert advisor"

#include <stdlib.mqh>

//--- Inputs
extern int    StopLoss       = 555; // лось 
extern int    TakeProfit     = 555; // язь
extern int    BuySell        = 0;   // 0-бай. 1-селл. 2-бай/селл
extern double Lots           = 0.1; // лот
extern int    Slip           = 100; // проскальзывание
extern int    Count          = 1;   // количество открываемых ордеров
extern int    MAGIC          = 123; // магик
extern string t              = "Время";
extern int    t1             = 1;      // время 1
extern int    t2             = 5;      // время 1
extern int    t3             = 15;     // время 1
extern int    t4             = 30;     // время 1
extern int    t5             = 60;     // время 1
extern int    t6             = 240;    // время 1
extern int    t7             = 1440;   // время 1
extern int    t8             = 10080;  // время 1
extern int    t9             = 43200;  // время 1

int tf[9],k=0;
datetime StartTime;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   StartTime=TimeCurrent();

   tf[0]=t1;
   tf[1]=t2;
   tf[2]=t3;
   tf[3]=t4;
   tf[4]=t5;
   tf[5]=t6;
   tf[6]=t7;
   tf[7]=t8;
   tf[8]=t9;
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
void OpenOrd()
  {
   int res,err;
   double sl,tp;

//--- sell conditions
   if(BuySell==1 || BuySell==2)
     {
      double bid=MarketInfo(OrderSymbol(),MODE_BID);
      if(StopLoss>0) sl=NormalizeDouble(bid+StopLoss*Point,Digits);   else sl=0;
      if(TakeProfit>0) tp=NormalizeDouble(bid-TakeProfit*Point,Digits);   else tp=0;
      res=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(bid,Digits),Slip,sl,tp,"",MAGIC,0,Red);
      if(res<0)
        {
         err=GetLastError();
         Print("ОШИБКА ВЫСТАВЛЕНИЯ ОРДЕРА SELL: ",err,"(",ErrorDescription(err),")");
           } else {
         RefreshRates();
        }
      return;
     }
   Sleep(1000);

//--- buy conditions
   if(BuySell==0 || BuySell==2)
     {
      double ask=MarketInfo(OrderSymbol(),MODE_ASK);
      if(StopLoss>0) sl=NormalizeDouble(ask-StopLoss*Point,Digits);   else sl=0;
      if(TakeProfit>0) tp=NormalizeDouble(ask+TakeProfit*Point,Digits);   else tp=0;
      res=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(ask,Digits),Slip,sl,tp,"",MAGIC,0,Blue);
      if(res<0)
        {
         err=GetLastError();
         Print("ОШИБКА ВЫСТАВЛЕНИЯ ОРДЕРА BUY: ",err,"(",ErrorDescription(err),")");
           } else {
         RefreshRates();
        }
      return;
     }
   Sleep(1000);
//---
  }
//+------------------------------------------------------------------+ 
void CloseAll()
  {
   bool cl,sel;
   for(int i=0; i<OrdersTotal(); i++)
     {
      sel=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)
        {
         if(OrderType()==OP_BUY) cl=OrderClose(OrderTicket(),OrderLots(),Bid,Slip,Blue);
         if(OrderType()==OP_SELL) cl=OrderClose(OrderTicket(),OrderLots(),Ask,Slip,Red);
        }
      Sleep(1000);
     }
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(CountTrades()<Count) OpenOrd();
   if((TimeCurrent()-StartTime)>tf[k]*60) 
     {
      k++;
      CloseAll();
      StartTime=TimeCurrent();
     }

   Comment("\n  Current Time: ",TimeToString(TimeCurrent(),TIME_SECONDS),
           "\n  Start Time: ",TimeToString(StartTime,TIME_SECONDS),
           "\n  Time Frame: ",tf[k],
           "\n  K: ",k);
  }
//+------------------------------------------------------------------+



avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 11 сентября 2015, 15:19
+
0
Прикольно получилось :) 

Вот только после девятого таймфрейма, советник начинает странно работать. Может сделайте так что бы после девятого таймфрейма переходил на первый таймфрейм или просто останавливался.
avatar

  14  beton2011 Автор Сообщений: 895

  • 11 сентября 2015, 16:02
+
0
Вот с увеличением лота и чередованием: www.opentraders.ru/downloads/867/

avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 11 сентября 2015, 16:05
+
0
Сейчас после 9 идет 1: www.opentraders.ru/downloads/867/

avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 11 сентября 2015, 16:31
+
0
Отлично <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' :) '>&nbsp; 

Осталось только что бы советник переходил на первый таймфрейм после закрытия ордер с профитом.

И тогда будет все.
Редактирован: 11 сентября 2015, 17:41
avatar

  14  beton2011 Автор Сообщений: 895

  • 11 сентября 2015, 17:01
+
0
Ага? <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' :) '>&nbsp;  www.opentraders.ru/downloads/867

//+------------------------------------------------------------------+
//|                                                     TimeOpen.mq4 |
//|                                              Copyright 2015, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property description "Time Open expert advisor"

#include <stdlib.mqh>

//--- Inputs
extern int    StopLoss       = 555; // лось 
extern int    TakeProfit     = 555; // язь
extern int    BuySell        = 0;   // 0-бай. 1-селл. 2-бай/селл
extern int    Slip           = 100; // проскальзывание
extern int    Count          = 1;   // количество открываемых ордеров
extern int    MAGIC          = 123; // магик

extern double Lots           = 0.1; // лот
extern double KLot           = 2;   // увеличение лота
extern double MaxLot         = 5.0; // максимальный лот

extern string t              = "Время";
extern int    t1             = 1;      // время 1
extern int    t2             = 5;      // время 1
extern int    t3             = 15;     // время 1
extern int    t4             = 30;     // время 1
extern int    t5             = 60;     // время 1
extern int    t6             = 240;    // время 1
extern int    t7             = 1440;   // время 1
extern int    t8             = 10080;  // время 1
extern int    t9             = 43200;  // время 1

int tf[9],k=0;
datetime StartTime;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   StartTime=TimeCurrent();

   tf[0]=t1;
   tf[1]=t2;
   tf[2]=t3;
   tf[3]=t4;
   tf[4]=t5;
   tf[5]=t6;
   tf[6]=t7;
   tf[7]=t8;
   tf[8]=t9;
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
void OpenOrd()
  {
   int res,err;
   double sl,tp;
   double ask=MarketInfo(OrderSymbol(),MODE_ASK);
      double bid=MarketInfo(OrderSymbol(),MODE_BID);
      
//--- sell conditions
   if(BuySell==1)
     {
      if(StopLoss>0) sl=NormalizeDouble(bid+StopLoss*Point,Digits);   else sl=0;
      if(TakeProfit>0) tp=NormalizeDouble(bid-TakeProfit*Point,Digits);   else tp=0;
      res=OrderSend(Symbol(),OP_SELL,Lot(),NormalizeDouble(bid,Digits),Slip,sl,tp,"",MAGIC,0,Red);
      if(res<0)
        {
         err=GetLastError();
         Print("ОШИБКА ВЫСТАВЛЕНИЯ ОРДЕРА SELL: ",err,"(",ErrorDescription(err),")");
           } else {
         RefreshRates();
        }
      return;
     }
   Sleep(1000);

//--- buy conditions
   if(BuySell==0)
     {      
      if(StopLoss>0) sl=NormalizeDouble(ask-StopLoss*Point,Digits);   else sl=0;
      if(TakeProfit>0) tp=NormalizeDouble(ask+TakeProfit*Point,Digits);   else tp=0;
      res=OrderSend(Symbol(),OP_BUY,Lot(),NormalizeDouble(ask,Digits),Slip,sl,tp,"",MAGIC,0,Blue);
      if(res<0)
        {
         err=GetLastError();
         Print("ОШИБКА ВЫСТАВЛЕНИЯ ОРДЕРА BUY: ",err,"(",ErrorDescription(err),")");
           } else {
         RefreshRates();
        }
      return;
     }
   Sleep(1000);

//--- buy sell conditions
   if(BuySell==2)
     {
      //--- sell conditions
      if(LastDealType()==1 || LastDealType()==0)
        {
         if(StopLoss>0) sl=NormalizeDouble(bid+StopLoss*Point,Digits);   else sl=0;
         if(TakeProfit>0) tp=NormalizeDouble(bid-TakeProfit*Point,Digits);   else tp=0;
         res=OrderSend(Symbol(),OP_SELL,Lot(),NormalizeDouble(bid,Digits),Slip,sl,tp,"",MAGIC,0,Red);
         if(res<0)
           {
            err=GetLastError();
            Print("ОШИБКА ВЫСТАВЛЕНИЯ ОРДЕРА SELL: ",err,"(",ErrorDescription(err),")");
              } else {
            RefreshRates();
           }
         return;
        }
      Sleep(1000);

      //--- buy conditions
      if(LastDealType()==2 || LastDealType()==0)
        {
         if(StopLoss>0) sl=NormalizeDouble(ask-StopLoss*Point,Digits);   else sl=0;
         if(TakeProfit>0) tp=NormalizeDouble(ask+TakeProfit*Point,Digits);   else tp=0;
         res=OrderSend(Symbol(),OP_BUY,Lot(),NormalizeDouble(ask,Digits),Slip,sl,tp,"",MAGIC,0,Blue);
         if(res<0)
           {
            err=GetLastError();
            Print("ОШИБКА ВЫСТАВЛЕНИЯ ОРДЕРА BUY: ",err,"(",ErrorDescription(err),")");
              } else {
            RefreshRates();
           }
         return;
        }
      Sleep(1000);
     }
//---
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int LastDealType()
  {
   int type=0;
   if(OrdersHistoryTotal()==0)
     {
      type=0;
     }
   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderType()==OP_BUY)
        {
         type=1;//buy  
        }
      if(OrderType()==OP_SELL)
        {
         type=2;//sell  
        }
     }
   return(type);
  }
//+------------------------------------------------------------------+ 
void CloseAll()
  {
   bool cl,sel;
   for(int i=0; i<OrdersTotal(); i++)
     {
      sel=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)
        {
         if(OrderType()==OP_BUY) cl=OrderClose(OrderTicket(),OrderLots(),Bid,Slip,Blue);
         if(OrderType()==OP_SELL) cl=OrderClose(OrderTicket(),OrderLots(),Ask,Slip,Red);
        }
      Sleep(1000);
     }
  }
//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot;
   if(OrdersHistoryTotal()==0)
     {
      lot=Lots;
     }
   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderProfit()>0)
        {
         lot=Lots;
         k=0;
        }
      if(OrderProfit()<0)
        {
         lot=OrderLots()*KLot;
        }
     }
   if(lot>MaxLot || lot==0) lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(k>9) k=0;
   if(CountTrades()<Count) OpenOrd();
   if((TimeCurrent()-StartTime)>tf[k]*60)
     {
      k++;
      CloseAll();
      StartTime=TimeCurrent();
     }

   Comment("\n  Current Time: ",TimeToString(TimeCurrent(),TIME_SECONDS),
           "\n  Start Time: ",TimeToString(StartTime,TIME_SECONDS),
           "\n  Time Frame: ",tf[k],
           "\n  K: ",k,
           "\n  Lot: ",Lot(),
           "\n  Last Deal Type: ",LastDealType());
  }
//+------------------------------------------------------------------+


Редактирован: 11 сентября 2015, 18:55
avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 11 сентября 2015, 18:39
+
0
Спасибо :) 
avatar

  14  beton2011 Автор Сообщений: 895

  • 11 сентября 2015, 19:08
+
0
Можете еще добавить, надо настройку начало чередование ордеров. Сейчас советник начинает чередовать только с продажи, а надо еще попробовать с покупок.

А вы можете сделать такой же советник для бинарных опционов?
avatar

  14  beton2011 Автор Сообщений: 895

  • 12 сентября 2015, 17:44
+
0
Я в понедельник буду один переделывать под бинарики, а потом уже ваш смотреть буду.
avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 12 сентября 2015, 18:35
+
0
Хорошо спасибо :) 
avatar

  14  beton2011 Автор Сообщений: 895

  • 12 сентября 2015, 18:44
+
0
Извините, вы можете хотя бы добавить режим чередования с покупок. Сейчас советник начинает чередовать с продаж.

Переделать под опционы я попробую сам.
Редактирован: 21 сентября 2015, 11:18
avatar

  14  beton2011 Автор Сообщений: 895

  • 21 сентября 2015, 11:17
+
0
Да, сейчас сделаю.
avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 21 сентября 2015, 11:44
+
0
Сейчас начинает с покупок, но это ничего не дает.


//+------------------------------------------------------------------+
//|                                                     TimeOpen.mq4 |
//|                                              Copyright 2015, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property description "Time Open expert advisor"

#include <stdlib.mqh>

//--- Inputs
extern int    StopLoss       = 555; // лось 
extern int    TakeProfit     = 555; // язь
extern int    BuySell        = 2;   // 0-бай. 1-селл. 2-бай/селл
extern int    Slip           = 100; // проскальзывание
extern int    Count          = 1;   // количество открываемых ордеров
extern int    MAGIC          = 123; // магик

extern double Lots           = 0.1; // лот
extern double KLot           = 2;   // увеличение лота
extern double MaxLot         = 5.0; // максимальный лот

extern string t              = "Время";
extern int    t1             = 1;      // время 1
extern int    t2             = 5;      // время 2
extern int    t3             = 15;     // время 3
extern int    t4             = 30;     // время 4
extern int    t5             = 60;     // время 5
extern int    t6             = 240;    // время 6
extern int    t7             = 1440;   // время 7
extern int    t8             = 10080;  // время 8
extern int    t9             = 43200;  // время 9

int tf[9],k=0;
datetime StartTime;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   StartTime=TimeCurrent();

   tf[0]=t1;
   tf[1]=t2;
   tf[2]=t3;
   tf[3]=t4;
   tf[4]=t5;
   tf[5]=t6;
   tf[6]=t7;
   tf[7]=t8;
   tf[8]=t9;
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
void OpenOrd()
  {
   int res,err;
   double sl,tp;
   double ask=MarketInfo(OrderSymbol(),MODE_ASK);
      double bid=MarketInfo(OrderSymbol(),MODE_BID);
      
//--- sell conditions
   if(BuySell==1)
     {
      if(StopLoss>0) sl=NormalizeDouble(bid+StopLoss*Point,Digits);   else sl=0;
      if(TakeProfit>0) tp=NormalizeDouble(bid-TakeProfit*Point,Digits);   else tp=0;
      res=OrderSend(Symbol(),OP_SELL,Lot(),NormalizeDouble(bid,Digits),Slip,sl,tp,"",MAGIC,0,Red);
      if(res<0)
        {
         err=GetLastError();
         Print("ОШИБКА ВЫСТАВЛЕНИЯ ОРДЕРА SELL: ",err,"(",ErrorDescription(err),")");
           } else {
         RefreshRates();
        }
      return;
     }
   Sleep(1000);

//--- buy conditions
   if(BuySell==0)
     {      
      if(StopLoss>0) sl=NormalizeDouble(ask-StopLoss*Point,Digits);   else sl=0;
      if(TakeProfit>0) tp=NormalizeDouble(ask+TakeProfit*Point,Digits);   else tp=0;
      res=OrderSend(Symbol(),OP_BUY,Lot(),NormalizeDouble(ask,Digits),Slip,sl,tp,"",MAGIC,0,Blue);
      if(res<0)
        {
         err=GetLastError();
         Print("ОШИБКА ВЫСТАВЛЕНИЯ ОРДЕРА BUY: ",err,"(",ErrorDescription(err),")");
           } else {
         RefreshRates();
        }
      return;
     }
   Sleep(1000);

//--- buy sell conditions
   if(BuySell==2)
     {
      //--- buy conditions
      if(LastDealType()==2 || LastDealType()==0)
        {
         if(StopLoss>0) sl=NormalizeDouble(ask-StopLoss*Point,Digits);   else sl=0;
         if(TakeProfit>0) tp=NormalizeDouble(ask+TakeProfit*Point,Digits);   else tp=0;
         res=OrderSend(Symbol(),OP_BUY,Lot(),NormalizeDouble(ask,Digits),Slip,sl,tp,"",MAGIC,0,Blue);
         if(res<0)
           {
            err=GetLastError();
            Print("ОШИБКА ВЫСТАВЛЕНИЯ ОРДЕРА BUY: ",err,"(",ErrorDescription(err),")");
              } else {
            RefreshRates();
           }
         return;
        }
      Sleep(1000);

      //--- sell conditions
      if(LastDealType()==1 || LastDealType()==0)
        {
         if(StopLoss>0) sl=NormalizeDouble(bid+StopLoss*Point,Digits);   else sl=0;
         if(TakeProfit>0) tp=NormalizeDouble(bid-TakeProfit*Point,Digits);   else tp=0;
         res=OrderSend(Symbol(),OP_SELL,Lot(),NormalizeDouble(bid,Digits),Slip,sl,tp,"",MAGIC,0,Red);
         if(res<0)
           {
            err=GetLastError();
            Print("ОШИБКА ВЫСТАВЛЕНИЯ ОРДЕРА SELL: ",err,"(",ErrorDescription(err),")");
              } else {
            RefreshRates();
           }
         return;
        }
      Sleep(1000);      
     }
//---
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int LastDealType()
  {
   int type=0;
   if(OrdersHistoryTotal()==0)
     {
      type=0;
     }
   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderType()==OP_BUY)
        {
         type=1;//buy  
        }
      if(OrderType()==OP_SELL)
        {
         type=2;//sell  
        }
     }
   return(type);
  }
//+------------------------------------------------------------------+ 
void CloseAll()
  {
   bool cl,sel;
   for(int i=0; i<OrdersTotal(); i++)
     {
      sel=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)
        {
         if(OrderType()==OP_BUY) cl=OrderClose(OrderTicket(),OrderLots(),Bid,Slip,Blue);
         if(OrderType()==OP_SELL) cl=OrderClose(OrderTicket(),OrderLots(),Ask,Slip,Red);
        }
      Sleep(1000);
     }
  }
//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot;
   if(OrdersHistoryTotal()==0)
     {
      lot=Lots;
     }
   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderProfit()>0)
        {
         lot=Lots;
         k=0;
        }
      if(OrderProfit()<0)
        {
         lot=OrderLots()*KLot;
        }
     }
   if(lot>MaxLot || lot==0) lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(k>9) k=0;
   if(CountTrades()<Count) OpenOrd();
   if((TimeCurrent()-StartTime)>tf[k]*60)
     {
      k++;
      CloseAll();
      StartTime=TimeCurrent();
     }

   Comment("\n  Current Time: ",TimeToString(TimeCurrent(),TIME_SECONDS),
           "\n  Start Time: ",TimeToString(StartTime,TIME_SECONDS),
           "\n  Time Frame: ",tf[k],
           "\n  K: ",k,
           "\n  Lot: ",Lot(),
           "\n  Last Deal Type: ",LastDealType());
  }
//+------------------------------------------------------------------+



avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 21 сентября 2015, 12:00
+
0
Сейчас начинает с покупок, но это ничего не дает.


Мне надо эти режимы для статистики. Вот например я протестировал советник на дневном
таймфрейме на 15-ти летней истории в любом режиме получилось максимум 11-ть убыточных ордеров подряд. Вот это уже можно использовать на опционах :) 

Было бы еще неплохо если вы добавите в советник настройку, после какого подряд убыточного ордера должен включатся мартингейл. Буду очень благодарен вам :) 
avatar

  14  beton2011 Автор Сообщений: 895

  • 21 сентября 2015, 12:55
+
0
Подумаю как это можно сделать.
avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 21 сентября 2015, 20:24
+
0
Хорошо.

Было бы вообще супер если вы в одном советнике совместите все режимы и добавите настройку после какого подряд убыточного ордера должен включатся мартингейл.

Тогда будет полноценный советник, и больше я вас не побеспокою <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' :) '>&nbsp; 
Редактирован: 21 сентября 2015, 21:03
avatar

  14  beton2011 Автор Сообщений: 895

  • 21 сентября 2015, 20:58
+
0
Матрешка готова :) 
www.opentraders.ru/downloads/867/

avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 22 сентября 2015, 13:02
+
0
Это грааль :)  для тех кто поймет как им пользоваться *good* 

Спасибо за работу *hi* 
avatar

  14  beton2011 Автор Сообщений: 895

  • 22 сентября 2015, 13:41
+
0
А тестить его здесь на FreeVPS будете?
Если нет желания, я могу потестить:)  только объясните что к чему:) 
avatar

  4  FashTsar Сообщений: 101

  • 22 сентября 2015, 23:22
+
0
Надо еще этот советник переделать под торговлю на бинарных опционах. Сегодня попробую сам переделать. Но я уже знаю что у меня не получаться переделать увеличение лота. Лучше всего если советник переделает Андрей, но я уже исчерпал свой лимит заказов в этом месяце.

Да и я не знаю, можно ставить советника на FreeVPS под торговлю на бинарных опционах.
avatar

  14  beton2011 Автор Сообщений: 895

  • 23 сентября 2015, 06:16
+
0
Лучше всего если советник переделает Андрей, но я уже исчерпал свой лимит заказов в этом месяце.


Если не получится переделать, разместите новый топик и я посмотрю что можно сделать.
avatar

  35  AM2 Сообщений: 16247 - Андрей

  • 23 сентября 2015, 18:52
+
0
Что касается отчётов, то в конце каждой недели выкладывать буду, как и в текущем тесте советника)
avatar

  4  FashTsar Сообщений: 101

  • 22 сентября 2015, 23:23
+
0
В ЛС ответьте только пожалуйста, а то потеряю эту тему, и ответ не увижу.
avatar

  4  FashTsar Сообщений: 101

  • 22 сентября 2015, 23:25

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий