kipjatok001
Kipjatok001 Best Trader

 
Уровень 13

  Торгую в компаниях:


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

Рейтинг 2089



РЕКОМЕНДУЮ



Помогите создать сеточник грааль

Всем Привет. Итак наконец-то готова стратегия сетки грааля. Итак
1. Закрытие всех ордеров по ТП в валюте депозита
2. время работы советника и отдельно закрытие в пятницу (при этом параметре закрываться советник будет в пятницу в заданное время (независимо от прибыли и убытка)
3. Сетка стоповых ордеров
а. Шаг от цены до первого ордера
б. Шаг между ордерами в сетке
в. Лот ордеров
г. Коэффициент увеличения шага ордеров в сетке
д. Коэффициент увеличения лота ордеров
ТП каждого ордера
СЛ каждого ордера
Тралл каждого ордера (начало работы трала, перенос СЛ на х пунктов, затем через каждые х пунктов)
Текущее число отложек
4. Сетка лимитных ордеров
а. Шаг от цены до первого ордера
б. Шаг между ордерами в сетке
в. Лот ордеров
г. Коэффициент увеличения шага ордеров в сетке
д. Коэффициент увеличения лота ордеров
ТП каждого ордера
СЛ каждого ордера
Тралл каждого ордера (начало работы трала, перенос СЛ на х пунктов, затем через каждые х пунктов)
Текущее число отложек
На месте закрытых ордеров выставляются ордера в противоположную сторону с коэффициентом увеличения лота.
Заранее большое спасибо.
  • +4
  • Просмотров: 5267
  • 13 декабря 2014, 22:49
  • kipjatok001
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

+
0
Помогите создать сеточник грааль

Мне кажется, можно просто оставить заголовок «Помогите сделать грааль»
И даже остальной текст будет лишний
avatar

  18  KranX Сообщений: 1786 - Жека

  • 13 декабря 2014, 23:00
+
0
Просто есть примерная стратегия. 100% в день на тренде.
10-20% на флете в день.
avatar

  13  kipjatok001 Автор Сообщений: 431 - Kipjatok001 Best Trader

  • 13 декабря 2014, 23:10
+
+2
Покажите памм или реальный счет в плюсе по этой стратегии, тогда будет дополнительный стимул.
avatar

  34  AM2 Сообщений: 15886 - Андрей

  • 13 декабря 2014, 23:42
+
+1
AM2, *good* 
Kipjatok001, ждем-с
avatar

  27  Oxy Сообщений: 3418 - ..ιllιlι.lι.ιllι.ιlι..

  • 14 декабря 2014, 00:25
+
+1
В принципе уже сейчас неплохо идет *victory* 

avatar

  34  AM2 Сообщений: 15886 - Андрей

  • 14 декабря 2014, 17:01
+
0
Вот и я о том же) Буду ждать советник)))
avatar

  13  kipjatok001 Автор Сообщений: 431 - Kipjatok001 Best Trader

  • 15 декабря 2014, 06:39
+
0
Прошу советник*hi* 
Будьте добры выложите пожалуйста
avatar

  13  kipjatok001 Автор Сообщений: 431 - Kipjatok001 Best Trader

  • 15 декабря 2014, 17:17
+
0
Случайно затер ту версию. Теперь нужно восстанавливать, но смысл в том что после тейка по цене прошлого ордера вливаем максимальный объем серией из нескольких ордеров.
avatar

  34  AM2 Сообщений: 15886 - Андрей

  • 15 декабря 2014, 20:15
+
0
Как показала практика нужно сохранять промежуточные версии в коментариях.


//+------------------------------------------------------------------+
//|                                                    StopLimit.mq4 |
//|                                              Copyright 2014, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

#define MAGIC  20110406
/*
1. Выставляем по одному стоповому или лимитному ордеру на расстоянии от цены.
2. Если сработал бай и закрылся по ТП на его место ставим селл стоп.
3. Если сработал бай и закрылся по СЛ на его место ставим ???.
4. Если сработал селл и закрылся по ТП на его место ставим бай стоп.
5. Если сработал селл и закрылся по СЛ на его место ставим ???.
*/
extern int    StopLoss    = 2500;//Стоплосс ордера
extern int    TakeProfit  = 350; //Тейкпрофит ордера 
extern int    Distance    = 350; //Расстояние от цены для установки ордера
extern int    Step        = 400; //Шаг установки ордеров
extern int    Count       = 10;  //Количество устанавливаемых ордеров
extern int    StopLimit   = 1;   //0 - Только стоповые ордера, 1 - только лимитные
extern int    Expiration  = 44;  //Время истечения ордера
extern int    KLot        = 50;  //Коэффициент у величения лота
extern double Lots        = 0.1; //Лот
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   Comment("");      
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   datetime expiration = TimeCurrent()+3600*Expiration;
   int Pos=0,b=0,s=0,res,i;
   double price;  
   for(i=OrdersTotal()-1;i>=0;i--)
    {
     if(OrderSelect(i, SELECT_BY_POS))
      {  
       if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue;
       if (OrderType()==OP_BUYLIMIT) b++;
       if (OrderType()==OP_SELLLIMIT) s++;
       if (OrderType()==OP_BUYSTOP) b++;
       if (OrderType()==OP_SELLSTOP) s++;       
       if (OrderType()==OP_BUY) Pos++;
       if (OrderType()==OP_SELL) Pos++;                  
      }   
    }
    
   if(LastDealResult()==1 && LastDealType()==1 && Pos<1 && b<1 && s<1)       
    { 
     for(i=1;i<=Count*KLot;i++)
      {
       {      
        price=LastDealPrice();           
        res=OrderSend(Symbol(),OP_SELLSTOP,Lots*KLot,price,3,price+StopLoss*Point,price-TakeProfit*Point,"",MAGIC,expiration,Red);
        Pos++;    
        Sleep(1000);
      }
     }
    }
    
   if(LastDealResult()==1/*last sell*/ && LastDealType()==2 && Pos<1 && b<1 && s<1)       
    { 
     for(i=1;i<=Count*KLot;i++)
      {
       {       
        price=LastDealPrice();           
        res=OrderSend(Symbol(),OP_BUYSTOP,Lots*KLot,price,3,price-StopLoss*Point,price+TakeProfit*Point,"",MAGIC,expiration,Blue);
        Pos++;   
        Sleep(1000);
       }
     }
    }          
    
   if(b<1 && s<1 && Pos<1)       
   for(i=1;i<=Count;i++)
    {
     { 
      price=fND(Ask+(Distance*Point+i*Step*Point));           
      if(StopLimit==0)res=OrderSend(Symbol(),OP_BUYSTOP,Lots,price,3,price-StopLoss*Point,price+TakeProfit*Point,"",MAGIC,expiration,Blue);
      if(StopLimit==1)res=OrderSend(Symbol(),OP_SELLLIMIT,Lots,price,3,price+StopLoss*Point,price-TakeProfit*Point,"",MAGIC,expiration,Red);     
      Sleep(1000);
     }
    }
       
   if(s<1 && b<1 && Pos<1)
   for(i=1;i<=Count;i++)
     { 
      price=fND(Bid-(Distance*Point+i*Step*Point));                  
      if(StopLimit==0) res=OrderSend(Symbol(),OP_SELLSTOP,Lots,price,3,price+StopLoss*Point,price-TakeProfit*Point,"",MAGIC,expiration,Red);
      if(StopLimit==1)res=OrderSend(Symbol(),OP_BUYLIMIT,Lots,price,3,price-StopLoss*Point,price+TakeProfit*Point,"",MAGIC,expiration,Blue);
      Sleep(1000);
     }
     
   //if(CountTrades()>0)DelOrder();
   Comment("\nLast Deal Result ",LastDealResult(),
           "\nLast Deal Type ",LastDealType(), 
           "\nLast Deal Price ",LastDealPrice(),
           "\nSell Orders Count ",s,
           "\nBuy Orders Count ",b,
           "\nPositions Count ",Pos);
   return(0);    
  }     
//+------------------------------------------------------------------+
double fND(double d, int n=-1) 
  {  
   if (n<0) return(NormalizeDouble(d, Digits)); 
   return(NormalizeDouble(d, n)); 
  }
//+------------------------------------------------------------------+
int LastDealResult()
  {
   int result=0;  
   if(OrdersHistoryTotal()==0)
    {
     result=0;
    }             
   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))      
     {                                       
      if(OrderProfit()>0)                     
       {
        result=1;//tp  
       }
      if(OrderProfit()<0)
        {
         result=2;//sl  
        }
     }         
   return(result);
  }  
//+------------------------------------------------------------------+
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);
  }  
//+------------------------------------------------------------------+
double LastDealPrice()
  {
   double price=0;  
   if(OrdersHistoryTotal()==0)
    {
     price=0;
    }             
   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))      
     {                                       
      price=OrderOpenPrice();
     }         
   return(price);
  }  
//+------------------------------------------------------------------+
void DelOrder()
  {
   bool del; 
   for(int i=OrdersTotal()-1; i>=0; i--) 
    {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
       {
        if(OrderMagicNumber()!=MAGIC || OrderSymbol()!=Symbol()) continue;
         {    
          if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; 
          if (OrderType()==OP_BUYSTOP)  del=OrderDelete(OrderTicket()); 
          if (OrderType()==OP_SELLSTOP) del=OrderDelete(OrderTicket());
          if (OrderType()==OP_BUYLIMIT)  del=OrderDelete(OrderTicket()); 
          if (OrderType()==OP_SELLLIMIT) del=OrderDelete(OrderTicket());
         }
       }                
     }         
  }
//+------------------------------------------------------------------+
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);
  }
//+------------------------------------------------------------------+
avatar

  34  AM2 Сообщений: 15886 - Андрей

  • 15 декабря 2014, 21:33
+
+1
Восстановил примерно. Было что то подобное:



Файл в базе: www.opentraders.ru/downloads/530/
avatar

  34  AM2 Сообщений: 15886 - Андрей

  • 15 декабря 2014, 21:44
+
0
На тестах действительно грааль. Поставил на демо, за 2 дня 200 долларов +. Причем депо у меня 1700.
Но по моему где -то ошибка в коде. После удаления не сработавших ордеров, одновременно выставляет все новые ордера по одной цене. Т.е. 10 ордеров стоплимит по 1.24500, вместо того, чтобы выставлять с шагом.
avatar

  5  Alt-Ripple Сообщений: 12

  • 17 декабря 2014, 13:00
+
0
Но по моему где -то ошибка в коде. После удаления не сработавших ордеров, одновременно выставляет все новые ордера по одной цене. Т.е. 10 ордеров стоплимит по 1.24500, вместо того, чтобы выставлять с шагом.


После тейка выставляет по одной цене серию ордеров, так было задумано.
avatar

  34  AM2 Сообщений: 15886 - Андрей

  • 17 декабря 2014, 16:32
+
0
а в чем смысл?
Можно одним ордером с большим лотом, если такая задумка. А по моему лучше так и придерживаться сетки.
Кстати, сейчас он работает или на отбой (лимитки), или на пробой.
А нельзя ли между ордерами поставить как бы локирующие ордера. Т.е. если после срабатывания первого ордера рынок движется не в том направлении, то идет убыток. Затем срабатывает следующий ордер и т.д. А если между ними примерно на 1/4 дистанции поставить ордер с малым ТП и СЛ (на уровне открытия основных ордеров) в противоположном направлении. Можно ведь еще взять профит
avatar

  5  Alt-Ripple Сообщений: 12

  • 17 декабря 2014, 19:02

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