beton2011

 
Уровень 14

  Моя торговля


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


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

Рейтинг 2146



РЕКОМЕНДУЮ



Советник - 777 -

Здравствуйте Oxy. Хочу Вас попросить сделать советника для МТ4 терминала. Советник открывает ордер в любую сторону ( настраивается в советнике ), на открытии новой свечи советник делает анализ, если ордер в минусе тогда советник считает сколько пунктов минус. В советнике настраиваем тейк-профит скажем в 10 пунктов, на открытии новой свечи, если есть минус скажем в 20 пунктов, тогда советник открывает увеличенный лот с таким расчетом что бы за 10 пунктов он смог бы отбить минус и еще сколько то профита ( настраивается в советнике ). Скажет так, советник открыл ордер 0.10 лот на новой свече на продажу, на следующей свече у нас минус 60 пункта, тогда советник открывает новый ордер на продажу с лотом 0.60 + профит, и если ордер закроется в профит тогда советник на новой свече начинает все с начало, а если опять минус скажем еще 50 пунктов, тогда советник открывает еще один ордер в 1.10 лот, и так пока не будет тейк-профит.
  • +1
  • Просмотров: 3922
  • 15 февраля 2015, 12:24
  • beton2011
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
Это не советник, это какая то лотерея, и то трудно назвать лотереей. (  Или вы миллионер, что бы так увеличивать объемы, либо… Ну скорее всего миллионер :D  О либо, просто думать не хочется :) 
avatar

  0  Strannik Сообщений: 685 - Алексей (деактивирован)

  • 15 февраля 2015, 19:28
+
0
А ты что сачкуешь не помогаешь ребятам ты ж могешь программировать да и интерес проявляешь как видно?
avatar

  13  Buff Сообщений: 401 - Артем

  • 15 февраля 2015, 20:56
+
0
Не вижу смысла в этом участвовать. У меня свой проект, и много отнимает и сил и ресурсов. А какой тут интерес, особо не понял!? Просто ТЗ не особо понятно, что хочет, заказчик? А так в целом, высказал свою мысль, не больше. У меня проект, в любом случаи сильнее, линейного советника :) 
avatar

  0  Strannik Сообщений: 685 - Алексей (деактивирован)

  • 15 февраля 2015, 21:37
+
0
Я писал чтоб вовлечь в процесс тя так сказать задеть:D  Я знаю о твоем проекте)))
avatar

  13  Buff Сообщений: 401 - Артем

  • 18 февраля 2015, 11:23
+
0
Это не лотерея. Я тестировал такую систему и все получалось. Просто надо большой депозит и большое плече.
avatar

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

  • 16 февраля 2015, 06:40
+
0
Вот про это я и говорю, лотерея. Если нужен большой депозит, и большое плече. По сути дела, алгоритма, расчета, то есть условий для входа нету. Просто на о бум. В целом. Если был бы большой депозит, можно вообще не думать. Входи всегда в одну сторону, с применением мартина, и когда ни будь повезет :)  Как я ранее, писал, вы скорее всего миллионер. :)  В общем не обижайся. Делай, но хорошего с этого мало чего получиться.
avatar

  0  Strannik Сообщений: 685 - Алексей (деактивирован)

  • 16 февраля 2015, 08:49
+
0
Скажем так, возьмем тейк-профит в 1 пункт, цена по любому на новой свече сходит на 1 пункт в нужную нам сторону, ну еще надо прибавить спред 2 пункта. Тяжело будет когда выйдут важные новости, но и в этот момент цена хорошо ходит в обе стороны.
avatar

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

  • 16 февраля 2015, 11:14
+
0
Задумка неплоха походу, до жесткого движняка в фигуру за минуту, для флета идеален. И не забываем о нано счетах там ему место.
avatar

  13  Buff Сообщений: 401 - Артем

  • 15 февраля 2015, 20:50
+
0
Угу, а флет?!?!?
avatar

  0  Strannik Сообщений: 685 - Алексей (деактивирован)

  • 15 февраля 2015, 21:37
+
0
дак я и пишу что для флета он, а так его стопить нуно по общему убытку как параметр, а то хана депозиту. Правда и так будет тяжело просадку уменьшить, но все же
avatar

  13  Buff Сообщений: 401 - Артем

  • 18 февраля 2015, 11:21
+
0
Открытие позиции происходит только на новой свече? Правильно поняла?
avatar

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

  • 16 февраля 2015, 13:48
+
0
avatar

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

  • 16 февраля 2015, 16:43
+
0
Что-то подобное хотели?
opentraders.ru/downloads/595/
avatar

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

  • 18 февраля 2015, 02:18
+
0
Почти, надо чтобы советник закрывал первый ордер и на открытии новой свечи и если минус, тогда открывал новый ордер с расчетом что он взяв 10 пунктов тейк-профита отобьет прошлый минусовый ордер. Кстати и этот вариант советника тоже хороший, но все таки лучше будет если советник будет закрывать прошлый ордер. Да и с лотами немного многовато, вот открылся скажем ордер 0.01 на дневной свече, но ордер не закрылся по тейк-профиту и у нас скажем минус 57 пунктов, тогда советник на новой свече закрывает ордер с минусом 57 пунктов и на этой свече открывает новый ордер в 0.057 лота + профит.
Редактирован: 18 февраля 2015, 11:38
avatar

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

  • 18 февраля 2015, 10:50
+
0
Вот вы пишите:
открывал новый ордер с расчетом что он взяв 10 пунктов тейк-профита отобьет прошлый минусовый ордер

Мне не посчитать, какой лот должен быть, чтобы вылезти в плюс. Если, например, получилось -50 пунктов, то если бы мы ставили тейк профит уже не 10 пунктов, а 50, то лот был бы просто удвоенный. Но мы ставим опять тейк 10 пунктов. Какой должен быть лот? Дайте мне формулу и я запрограммирую.
avatar

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

  • 18 февраля 2015, 13:43
+
0
Я Вас понимаю, здесь трудно что то сообразить. Скажем так, открыт ордер 0.01 лот на продажу, на следующей свече этот ордер закрывается или по тейк-профиту или советник его закрывает сам на новой свече, скажем был минус 34 пункта, тогда советник открывает новый ордер 0.034 такой лот не получится открыть, значит открывается 0.04 лот, и если этот ордер ушел в минус скажем на 10 пунктов, тогда ордер с лотам 0.04 закрывается и советник считает сколько всего убыток в пунктов по прошлым закрытым ордерам и открывает новый ордер с таким лотом что бы за 10 пунктов движения цены в нашу сторону отбить потерянное.
Редактирован: 18 февраля 2015, 16:34
avatar

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

  • 18 февраля 2015, 16:30
+
0
Советник здесь:
opentraders.ru/downloads/597/
У меня минимальный лот, которым может торговать советник 0,1, хотя руками я могу в МТ4 торговать и 0,01 *???*  Такое бывает.
Итак, минимальный лот 0,1. Шаг изменения лота 0,01.

Сейчас формула расчета лота (для цены 5 или 4 знака после запятой):
|цена открытия - цена закрытия|* 1000 * 0,1 (минимальный лот) + предыдущий лот от убыточной позиции

И все это округлено до минимального шага лота.
Пример:
(1,13500 — 1,13350)*1000*0,1 + 0,1 (предыдущий) = 0,25 лот

Но формулу надо менять. Она пока убыточная. Пишите, как.
Редактирован: 19 февраля 2015, 15:13
avatar

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

  • 19 февраля 2015, 15:12
+
0
Сейчас тестирую на дневных графиках идет в плюс. иногда советник неправильно увеличивает лоты, выкладываю скрин такое место, на корт инке видно что с начало советник правильно увечил но был минус а вот следующий ордер открылся с лишком маленьким увеличением. Следуюши лот должен быть примерно 2.85 лота, я просто прибавил два последних убытка.

avatar

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

  • 19 февраля 2015, 18:38
+
0
У нас формула:
|цена открытия - цена закрытия|* 1000 * минимальный лот + предыдущий лот от убыточной позиции

Плюс округление до минимального шага лота.
___________________________
Тикет № 396. Цена открытия 1,4226, цена закрытия 1,4047, минимальный лот 0,01, предыдущий лот 0,15. Здесь все верно?
___________________________
Подставляем в формулу:
(1,4226-1,4047)*1000*0,01 + 0,15 = 0,329 -> с округлением 0,33
И где ошибка?
Я же писала, предложите свою формулу и я её поставлю.
avatar

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

  • 19 февраля 2015, 22:47
+
0
Спасибо и на том что вы сделали, просто хотел проверить на истории эту систему и вроде может получатся, только надо самому открывать ордера. Еще раз спасибо
avatar

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

  • 20 февраля 2015, 07:11
+
0
а формулу? *war* 
avatar

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

  • 20 февраля 2015, 10:01
+
0
Точно не знаю, может так, например первый лот 0.01 закрылся с минусом 13.64, тогда советник берет и просто умножает 13.64 на 0.01 лот, получится 0.1364 + округляет и это и будет следующий открытый лот ордера, а если и по этому будет минус 269.12, тогда советник прибавляет два прошлых минуса 13.64 и 269.12 и получится 282,76 и опять умножаем на 0.01 и получится 2.8276 + округляем, вот это и будет следующим лотом. Как то так.
Редактирован: 20 февраля 2015, 14:05
avatar

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

  • 20 февраля 2015, 13:48
+
0
Вот, но все-равно в минус уходим:
//+------------------------------------------------------------------+
//|                                                   Beton_Exp5.mq4 |
//|                                                              Oxy |
//|                                   http://oxy.opentraders.ru/bio/ |
//+------------------------------------------------------------------+
#property copyright "Oxy"
#property link      "http://oxy.opentraders.ru/bio/"
#property version   "1.00"
#property strict
//------- Внешние параметры советника -----------------------------------------+
extern double LotBegin            = 0.1;       // Первоначальный лот
extern int    SellOrBuy           = 1;         // SELL=1, BUY=0
extern int    TakeProfit          = 100;       // Take Profit
              
extern int    Slippage   = 30;         // Проскальзывание цены
extern int    MagicNumber= 567582;     // Идентификатор ордера
//------- Глобальные переменные советника -------------------------------------+
string Symb;
int    Ticket=-1;
int    Umn;
double StepLot;
double MinLot;
double MaxLot;
double NewLot=LotBegin;
datetime timePrev    = -1;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   if (!IsTradeAllowed()) { Print("Необходимо разрешить советнику торговать"); return(INIT_FAILED);}  
   if (TakeProfit<MarketInfo(Symbol(), MODE_STOPLEVEL)) { Print("Неправильно выставлен Take Profit!");   return(INIT_FAILED);}
   if (LotBegin<MarketInfo(Symbol(), MODE_MINLOT)) { Print("Неправильно выставлен первоначальный лот!"); return(INIT_FAILED);}
   Symb = Symbol();
   Umn=1;
   if(Digits>3) Umn = 1000;
   if(Digits==3)Umn = 100;
   if(Digits==2)Umn = 10;
   StepLot = MarketInfo(Symbol(), MODE_LOTSTEP);
   MinLot  = MarketInfo(Symbol(), MODE_MINLOT);
   MaxLot  = MarketInfo(Symbol(), MODE_MAXLOT);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason) {  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
    // на новой свече
    if(timePrev != Time[1] && HavePos ()) {
      if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
        int    ot        = OrderType();
        double lotSize   = OrderLots();
        // ---закрываем----------       
        if(ot==0){
          if (!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage))  { Print("Не удалось закрыть ордер!"); return;}
        }
        if(ot==1) {
          if (!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage))  { Print("Не удалось закрыть ордер!"); return;}
        }
        // ---рассчитываем лот---
        if(OrderSelect(Ticket,SELECT_BY_TICKET,MODE_HISTORY)) {
          double orPr = OrderProfit();
          if(orPr<0) {            
            double someLot    = lotSize + orPr*-1*MinLot;
            NewLot = MathRound(someLot/StepLot)*StepLot;
            if (NewLot>MaxLot) NewLot=MaxLot;
          }
        }
      }
    }    
    // открываем новую позицию
    if(timePrev != Time[1] && HavePos () == false) {
      timePrev = Time[1];
      if(SellOrBuy==0) {   
        BuyPos(NewLot);
        NewLot=LotBegin;
      }
      if(SellOrBuy==1) {
        SellPos(NewLot);
        NewLot=LotBegin;
      }
    }
  }
//+------------------------------------------------------------------+
bool HavePos () {
  int i, k = OrdersTotal ();
  for (i=k-1; i>=0; i--) {
    if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==Symb && OrderMagicNumber()==MagicNumber) {
        if(OrderType()==0 || OrderType()==1) Ticket = OrderTicket();
        return (true);
      }
    }
  }
  return (false);
}
//+------------------------------------------------------------------+
void BuyPos(double _lot) {
  double sl=0;
  double tp = Ask + TakeProfit*Point; 
  Ticket = OrderSend(Symb, OP_BUY, _lot, NormalizeDouble(Ask,Digits), Slippage, NormalizeDouble(sl,Digits), NormalizeDouble(tp,Digits), NULL, MagicNumber); 
}
void SellPos(double _lot) {
  double sl=0;
  double tp = Bid - TakeProfit*Point; 
  Ticket = OrderSend(Symb, OP_SELL, _lot, NormalizeDouble(Bid,Digits), Slippage, NormalizeDouble(sl,Digits), NormalizeDouble(tp,Digits), NULL, MagicNumber); 
}
//+------------------------------------------------------------------+


Здесь не проверяется на наличие денег для открытия позиции.
Жду другую формулу.
Редактирован: 20 февраля 2015, 15:31
avatar

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

  • 20 февраля 2015, 15:23
+
0
Все правильно, только в коде надо было добавить в эту строку double someLot = lotSize + orPr*-1*MinLot; заместо 1 надо 10, сам немного покопался в коде и все получилось. Сейчас работает в профит но только на дневных графиках и лучше всего на Sell. Так что с общими усилиями у нас получился почти грааль *lalala* 

Вы можете еще встроить такую функцию, что бы можно было включать и отключать эту функцию. Функция простая, скажем советник открывает все время на продажу а когда ордер зарывается с минусом, тогда дальше советник открывает ордера только на покупки. Было бы интересно взглянуть на результат. Спасибо
Редактирован: 20 февраля 2015, 17:51
avatar

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

  • 20 февраля 2015, 17:50
+
0
Это уже другой малость советник. С вас новый топик — и я сделаю на следующей неделе.
avatar

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

  • 20 февраля 2015, 18:17

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