beton2011

 
Уровень 14

  Моя торговля


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


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

Рейтинг 2146



РЕКОМЕНДУЮ



Добавить функции в советник LunumExp

Можно попросить добавить в этот советник еще такие функции, первая функция это мартингейл с таким расчетам, если ордер уходит в просадку тогда следующий ордер открывается 0.20 лотом, следующий 0.30 лот, короче так 1-2-3-4-5-6-7-8-9 и т.д. Вторая функция это закрытие всех ордеров по достижению общего профита в проценте от баланса. Спасибо

Советник — LunumExp_mq4_1.rar (9 Kb)
  • 0
  • Просмотров: 5285
  • 8 февраля 2015, 16:12
  • beton2011
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
Я блин генератор идей)) Жаль что реализовать не могу, т.к. не имею опыта программирования ( 
avatar

  2  Lunum Сообщений: 60

  • 8 февраля 2015, 17:41
+
0
Может надо писать понятно, а то не все понимают Ваши идеи. Я протестировал более 300 советников, и если Вы на пальцах или картинках покажите что Вам надо, возможно общими усилиями мы решим проблему :) 
avatar

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

  • 8 февраля 2015, 19:51
+
0
Окей, вызов принят)
Смотрим ситуацию, мани менеджмент и риск менеджмент в торговле я думаю, все знают. Опустим эту тему.
Торгуем 1%, чтобы было безопасно, возможно много раз усреднять сделку для выхода из минуса.
Мы входим в рынок на sell и buy.
Одна из сделок идет в прибыль, другая в просадку (убыточная).
Как только прибыльная цена достигает «пика», она разворачивается.
Что бы зафиксировать прибыль как можно больше, мы ставим ТрейдингСтоп (в МТ5 так называется). Когда тренд меняет свое направление в противоположную сторону, дабы не учитывать колебания 100-300 (возьмем 200п.)пунктов которые возможны, мы его ставим.
Получается следующее…

Цена идет к примеру вверх (цена растет), проходит 500 пунктов, делает спад на 100 пунктов, далее опять растет до 1000 пунктов прибыль. Меняет свое направление, падает на 300 пунктов. Сделка закрывается по ТрейдингСтоп в прибыльной зоне 800 пунктов.
При закрытии по ТрейдингСтоп сделка открывается заново в том же направлении, то есть buy.

И так далее. На данном этапе понятно?

Что делать с убыточной сделкой?
Как показывает практика, при «коррекции» цены и всех тенденций, она проходит в обратную сторону (даже при восходящем тренде) примерно 500 пунктов ВСЕГДА.
Именно по этому нам надо усреднять убыточную сделку ровно в 2 раза.
То есть, была сделка 0,1, стала 0,2, стала 0,4, 0,8, 1,6, 3,2, 6,4 и так далее.

В любом случае, сделка рано или поздно, закроется, т.к. цена продет коррекцию в 500 пунктов. Сделка закроется хотя бы в 0 или в прибыль.

Так как прибыльная сделка закрывается все время положительно, у нас растет уровень моржи и есть возможность усреднять.

Идея понятна?
Может кто такой советник сделать? Не важно МТ5 или МТ4.
avatar

  2  Lunum Сообщений: 60

  • 8 февраля 2015, 20:04
+
0
Я тестировал недоделанный советник от Оху, на МТ5. zakaz.opentraders.ru/22615.html
При правильном выборе Т/Р и усреднении, депозит с 10 000 USD возрастает в 3 раза, а это 300% за 6 месяцев.
avatar

  2  Lunum Сообщений: 60

  • 8 февраля 2015, 20:06
+
0
Понял, такого советника не видел. Я такую систему уже тестировал, здесь расчет идет на откат или смена тренда. Но не так все просто, бывают безоткатные тренды по 3000-5000 пунктов ( четырехзначные котировки ) и вот тогда не поможет усреднение. Это на истории мы можем спокойна показывать места где можно было усреднять а в реале все по другому.
avatar

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

  • 8 февраля 2015, 20:35
+
0
avatar

  2  Lunum Сообщений: 60

  • 8 февраля 2015, 20:55
+
0
Допустим идет безоткатный тренд 5000 пунктов.
Следовательно, мы будем усреднять по меньшей мере 5 раз. Верно?
0,1,0,2,0,4,0,8,1,6. Итого получается 1,6 лота в рынке по сделке? Это много?
Идет коррекция и все. Вопрос только в депозите. А так же, мы же разумные существа — люди. Можем следить за торговлей да и должны.

А так же, если тестировали «руками», то как практика показывает у нас не хватает времени на торговлю 24/7.
Надеюсь, пояснять не нужно.

Редактирован: 8 февраля 2015, 20:58
avatar

  2  Lunum Сообщений: 60

  • 8 февраля 2015, 20:57
+
0
Я пока тут лишняя? Вы на стадии разработки идеи? Как сгенерируете, пишите.
avatar

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

  • 8 февраля 2015, 23:51
+
0
avatar

  2  Lunum Сообщений: 60

  • 9 февраля 2015, 00:00
+
0
Это — Lunum — здесь лишний :D  Я вот все жду Вашего ответа по доработки советника :) 
avatar

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

  • 9 февраля 2015, 07:01
+
0
Хорошо, сделаю. Вы видели, что в том советнике, если указать параметр
ClosePosition       = 200;       // Через сколько пунктов закрываем позицию и открываем новую, 0 - не будет закрытия

то через 200 пунктов произойдет закрытие позиции и открытие новой такой же. Это оставляем?
avatar

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

  • 9 февраля 2015, 13:12
+
0
Да оставляем все как есть.
avatar

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

  • 9 февраля 2015, 13:33
+
0
Я немного перепутал с настройкой закрытия всех ордеров. Просто надо чтобы советник закрывал все ордера с профитом по эквита а не по балансу. Скажем начальный баланс 1000$, когда открывается первый ордер у нас эквита получается тоже 1000$, мы настраиваем в советнике процент профита 10 % от эквита, и когда на эквите будет 1100$, советник закрывает все ордера и начинает с начального лота 0.10 лот.
avatar

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

  • 9 февраля 2015, 14:15
+
0
Если что-то подразумевал другое, пишите, переделаю:
opentraders.ru/downloads/587/
avatar

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

  • 10 февраля 2015, 00:46
+
0
Привет, все сделано правильно *good* . Еще немного и Грааль будет готов *lalala* . Можно еще одну функцию встроить в советник? Нужна такая функция, теперь надо что бы
советник увеличивал лоты когда ордер закроется по тейкпрофиту. Получается надо в советнике переключатель, скажем в режиме — 0 — советник увеличивает ордера когда в просадке, а если переключим в режим — 1 — тогда советник увеличивает ордера по тейкпрофиту а в просадке не увеличивается.В режиме — 1 — все ордера закрываются также как в режиме — 0 — по достижению процента профита по эквити.

Переключатель нужен для того чтобы можно было на два терминала поставить советника, на одном терминале советник будет увеличивать лот когда просадка а на другом терминале увеличивать лот когда ордера закрываются по тейкпрофиту.
Редактирован: 10 февраля 2015, 15:15
avatar

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

  • 10 февраля 2015, 14:55
+
0
добавлю
avatar

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

  • 10 февраля 2015, 23:50
+
+1
проверяйте:
//+------------------------------------------------------------------+
//|                                                   Beton_Exp1.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 Lot                 = 0.1;       // Лот
extern double ClosePosition       = 200;       // Через сколько пунктов закрываем позицию и открываем новую, 0 - не будет закрытия
extern double Drawdown            = 100;       // Просадка в пунктах, 0 - без просадки
extern int    SellOrBuy           = 1;         // SELL=1, BUY=0
extern int    Profit              = 10;        // Процент прибыли
extern int    WhichLotsRise       = 0;         // Увеличивает ордера: 0 - в просадке, 1 - по тейкпрофиту
              
extern int    Slippage   = 30;         // Проскальзывание цены
extern int    MagicNumber= 567582;     // Идентификатор ордера
//------- Глобальные переменные советника -------------------------------------+
string Symb;
double pricePoint = -1;
double newLot=Lot;
double balance;
bool   stopBuySell = false;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   if (!IsTradeAllowed()) { Print("Необходимо разрешить советнику торговать"); return(INIT_FAILED);}  
   Symb = Symbol();
   balance = AccountEquity();
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason) {  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
    if(stopBuySell) return;
    
    // есть ордера
    if(OrdersTotal ()>0) {
      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()==SellOrBuy) {
              managerOrder ();
            }
          }
        }
      }
    }
    // откат и начало !!!
    if(SellOrBuy==0 && Ask<=pricePoint-Drawdown*Point && Drawdown>0) { 
      if(pricePoint==-1) newLot=Lot; 
      else {
        if(WhichLotsRise==0) newLot=Lot+newLot; 
        if(WhichLotsRise==1) newLot=Lot;
      }
      BuyPos(newLot); 
    }
    if(SellOrBuy==1 && Bid>=pricePoint+Drawdown*Point && Drawdown>0) { 
      
      if(pricePoint==-1) newLot=Lot; 
      else {
        if(WhichLotsRise==0) newLot=Lot+newLot; 
        if(WhichLotsRise==1) newLot=Lot;
      }
      SellPos(newLot);
    } 
    // ордеров, выставленных, нет !!!
    if(OrdersTotal ()==0) {
      if(SellOrBuy==0) { 
        if(WhichLotsRise==0) newLot=Lot;
        if(WhichLotsRise==1) newLot=Lot+newLot;
        balance = AccountEquity(); BuyPos(newLot); 
      }
      if(SellOrBuy==1) { 
        if(WhichLotsRise==0) newLot=Lot; 
        if(WhichLotsRise==1) newLot=Lot+newLot; 
        balance = AccountEquity(); SellPos(newLot); 
      }
    } 
    if(AccountEquity()>=balance*Profit/100+balance)  deleteAllPos ();
  }
//+------------------------------------------------------------------+
void deleteAllPos () {
  int i, ot;

  for (i=0; i<OrdersTotal(); i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {      
      if (OrderSymbol()==Symb && OrderMagicNumber()==MagicNumber) {
        ot=OrderType();
        if (ot>1 && ot<6) {
          if (!OrderDelete(OrderTicket())) Print("Не удалось удалить ордер!");
        } 
        if(ot==0){
          if (!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage))  Print("Не удалось закрыть ордер!");
          else stopBuySell=false;
        }
        if(ot==1) {
          if (!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage))  Print("Не удалось закрыть ордер!");
          else stopBuySell=false;
        }
      }
    }
  }
}
//+------------------------------------------------------------------+
void managerOrder () {
      
      double price = OrderOpenPrice ();
      if(price>-1) {
        if(SellOrBuy==0 && OrderType()==0) {
          if(Bid>=price+ClosePosition*Point && ClosePosition>0) { // закрываем и открываем новый
            int ticket = OrderTicket();
            if(OrderClose(ticket, OrderLots(), Bid, Slippage)) {
              if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_HISTORY)) pricePoint = OrderClosePrice();
              stopBuySell=false;
            }    
            else Print("Не удалось закрыть ордер BUY!");        
          }
        }
        if(SellOrBuy==1 && OrderType()==1) {
          if(Ask<=price-ClosePosition*Point && ClosePosition>0) { // закрываем и открываем новый
            int ticket = OrderTicket();
            if(OrderClose(ticket, OrderLots(), Bid, Slippage)) {
              if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_HISTORY)) pricePoint = OrderClosePrice();
              stopBuySell=false;
            }
            else Print("Не удалось закрыть ордер SELL!");
          }   
        }
      }
}
//+------------------------------------------------------------------+
bool BuyPos(double _lot) {
  double sl=0, tp=0;
  int ticket = OrderSend(Symb, OP_BUY, _lot, NormalizeDouble(Ask,Digits), Slippage, NormalizeDouble(sl,Digits), NormalizeDouble(tp,Digits), NULL, MagicNumber); 
  if (ticket == -1) { stopBuySell=true; Print("Ошибка совершении сделки!"); return(false);}
  if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)) pricePoint = OrderOpenPrice();
  return (true);
}
bool SellPos(double _lot) {
  double sl=0, tp=0;
  int ticket = OrderSend(Symb, OP_SELL, _lot, NormalizeDouble(Bid,Digits), Slippage, NormalizeDouble(sl,Digits), NormalizeDouble(tp,Digits), NULL, MagicNumber); 
  if (ticket == -1) { stopBuySell=true; Print("Ошибка совершении сделки!"); return(false);}
  if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)) pricePoint = OrderOpenPrice();
  return (true);
}
//+------------------------------------------------------------------+
avatar

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

  • 11 февраля 2015, 13:10
+
0
Все правильно, спасибо <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' :) '>&nbsp;Вот только в функции — 1 — ( увеличение по тейкпрофиту ) можете сделать так, когда все ордера закроются по проценту профита, тогда советник должен начинать с начального лота, а сейчас он продолжает увеличивать. Надо что бы увеличивал только когда ордер закроется по — ClosePosition -, а когда закрываются ордера по проценту, тогда начинает с начального лота.
Редактирован: 11 февраля 2015, 16:08
avatar

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

  • 11 февраля 2015, 15:36
+
0
вместо:
if(AccountEquity()>=balance*Profit/100+balance) deleteAllPos ();

сделайте:
if(AccountEquity()>=balance*Profit/100+balance) { deleteAllPos (); newLot=Lot; }

Редактирован: 11 февраля 2015, 16:23
avatar

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

  • 11 февраля 2015, 16:22
+
0
Не не то. Попробую Вам по другому рассказать мою идею. Все просто, в функции — 1 — увеличиваются ордера когда закроются по — ClosePosition — хоть даже серия ордеров в просадке, все равно после тейкпрофита по — ClosePosition — следующий ордер увеличивается, а когда по эквити будет профит в заданном проценте, тогда все ордера закрываются и все начинается с начального лота.

Все тоже самое что и режиме — 0 — только ордера увеличиваются по тейкпрофиту и только по — ClosePosition -.
Редактирован: 11 февраля 2015, 18:30
avatar

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

  • 11 февраля 2015, 18:29
+
0
Смотрите у нас куча ордеров (к примеру) sell, в том числе в просадке. И вдруг один закрылся в плюсе по ClosePosition. Следующий, который открывается sell — уже будет увеличенным лотом. Хорошо, а если мы опять уйдем в просадку по sell? Лот для них тоже увеличивать? Т.е. после одного сработанного ClosePosition для sell для всех последующих любых sell мы увеличиваем лот? Пока не закроемся по эквити?
avatar

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

  • 11 февраля 2015, 20:53
+
0
После каждого закрытия ордера по ClosePosition идет продолжение увеличения ордеров только когда какойто ордер закроется по ClosePosition. Скажем первый ордер с 0.10 лот закрылся по тейкпрофиту, следующий ордер с 0.20 лот и он уходит в просадку, в просадке открываются новые ордера по 0.10 лот но когда сработает тейкпрофит, тогда следующей ордер уже будет 0.30 лот и когда ордера закроются по проценту профита все начинается сначала.
Редактирован: 12 февраля 2015, 07:22
avatar

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

  • 12 февраля 2015, 07:18
+
0
Оно?
//+------------------------------------------------------------------+
//|                                                   Beton_Exp1.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 Lot                 = 0.1;       // Лот
extern double ClosePosition       = 200;       // Через сколько пунктов закрываем позицию и открываем новую, 0 - не будет закрытия
extern double Drawdown            = 100;       // Просадка в пунктах, 0 - без просадки
extern int    SellOrBuy           = 1;         // SELL=1, BUY=0
extern int    Profit              = 10;        // Процент прибыли
extern int    WhichLotsRise       = 0;         // Увеличивает ордера: 0 - в просадке, 1 - по тейкпрофиту
              
extern int    Slippage   = 30;         // Проскальзывание цены
extern int    MagicNumber= 567582;     // Идентификатор ордера
//------- Глобальные переменные советника -------------------------------------+
string Symb;
double pricePoint = -1;
double newLot=Lot;
double plusLot=Lot;
double balance;
bool   stopBuySell = false;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   if (!IsTradeAllowed()) { Print("Необходимо разрешить советнику торговать"); return(INIT_FAILED);}  
   Symb = Symbol();
   balance = AccountEquity();
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason) {  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
    if(stopBuySell) return;
    
    // есть ордера
    if(OrdersTotal ()>0) {
      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()==SellOrBuy) {
              managerOrder ();
            }
          }
        }
      }
    }
    // откат и начало
    if(SellOrBuy==0 && Ask<=pricePoint-Drawdown*Point && Drawdown>0) { 
      if(pricePoint==-1) newLot=Lot; 
      else {
        if(WhichLotsRise==0) newLot=Lot+newLot; 
        if(WhichLotsRise==1) newLot=Lot;
      }
      BuyPos(newLot); 
    }
    if(SellOrBuy==1 && Bid>=pricePoint+Drawdown*Point && Drawdown>0) { 
      
      if(pricePoint==-1) newLot=Lot; 
      else {
        if(WhichLotsRise==0) newLot=Lot+newLot; 
        if(WhichLotsRise==1) newLot=Lot;
      }
      SellPos(newLot);
    } 
    // ордеров, выставленных, нет
    if(OrdersTotal ()==0) {
      if(SellOrBuy==0) { 
        if(WhichLotsRise==0) newLot=Lot;
        if(WhichLotsRise==1) { newLot=Lot+plusLot; plusLot=newLot;}
        balance = AccountEquity(); BuyPos(newLot); 
      }
      if(SellOrBuy==1) { 
        if(WhichLotsRise==0) newLot=Lot; 
        if(WhichLotsRise==1) { newLot=Lot+plusLot; plusLot=newLot;} 
        balance = AccountEquity(); SellPos(newLot); 
      }
    } 
    if(AccountEquity()>=balance*Profit/100+balance) { deleteAllPos (); plusLot=Lot; newLot=Lot; }
  }
//+------------------------------------------------------------------+
void deleteAllPos () {
  int i, ot;

  for (i=0; i<OrdersTotal(); i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {      
      if (OrderSymbol()==Symb && OrderMagicNumber()==MagicNumber) {
        ot=OrderType();
        if (ot>1 && ot<6) {
          if (!OrderDelete(OrderTicket())) Print("Не удалось удалить ордер!");
        } 
        if(ot==0){
          if (!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage))  Print("Не удалось закрыть ордер!");
          else stopBuySell=false;
        }
        if(ot==1) {
          if (!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage))  Print("Не удалось закрыть ордер!");
          else stopBuySell=false;
        }
      }
    }
  }
}
//+------------------------------------------------------------------+
void managerOrder () {
      
      double price = OrderOpenPrice ();
      if(price>-1) {
        if(SellOrBuy==0 && OrderType()==0) {
          if(Bid>=price+ClosePosition*Point && ClosePosition>0) { // закрываем и открываем новый
            int ticket = OrderTicket();
            if(OrderClose(ticket, OrderLots(), Bid, Slippage)) {
              if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_HISTORY)) pricePoint = OrderClosePrice();
              stopBuySell=false;
            }    
            else Print("Не удалось закрыть ордер BUY!");        
          }
        }
        if(SellOrBuy==1 && OrderType()==1) {
          if(Ask<=price-ClosePosition*Point && ClosePosition>0) { // закрываем и открываем новый
            int ticket = OrderTicket();
            if(OrderClose(ticket, OrderLots(), Bid, Slippage)) {
              if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_HISTORY)) pricePoint = OrderClosePrice();
              stopBuySell=false;
            }
            else Print("Не удалось закрыть ордер SELL!");
          }   
        }
      }
}
//+------------------------------------------------------------------+
bool BuyPos(double _lot) {
  double sl=0, tp=0;
  int ticket = OrderSend(Symb, OP_BUY, _lot, NormalizeDouble(Ask,Digits), Slippage, NormalizeDouble(sl,Digits), NormalizeDouble(tp,Digits), NULL, MagicNumber); 
  if (ticket == -1) { stopBuySell=true; Print("Ошибка совершении сделки!"); return(false);}
  if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)) pricePoint = OrderOpenPrice();
  return (true);
}
bool SellPos(double _lot) {
  double sl=0, tp=0;
  int ticket = OrderSend(Symb, OP_SELL, _lot, NormalizeDouble(Bid,Digits), Slippage, NormalizeDouble(sl,Digits), NormalizeDouble(tp,Digits), NULL, MagicNumber); 
  if (ticket == -1) { stopBuySell=true; Print("Ошибка совершении сделки!"); return(false);}
  if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)) pricePoint = OrderOpenPrice();
  return (true);
}
//+------------------------------------------------------------------+
avatar

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

  • 13 февраля 2015, 01:33
+
0
Привет, так будет хорошо. Можно еще попросить сделать чтобы можно было настраивать меньше процент профита, сейчас минимальный 1% а хотелось бы от 0.01% или хотя бы от 0.10%. Тогда все будет просто супер *good* 
avatar

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

  • 13 февраля 2015, 07:20
+
0
Замените:
extern int    Profit  = 10;

на:
extern double Profit  = 10;

*think*  Должно быть достаточно.
avatar

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

  • 13 февраля 2015, 15:28
+
0
Спасибо все работает как надо *bravo*  С Вашей помощью я скоро научусь писать советники :) 
avatar

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

  • 13 февраля 2015, 17:14
+
0
Чуть изменила код. Убрала очень маленькую почти незаметную ошибку. opentraders.ru/downloads/587/
avatar

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

  • 17 февраля 2015, 20:44
+
0
Здравствуйте, советник все отлично работает но только в тестере. Когда ставлю на демо счет, тогда может сам по сибе исчезнуть или просто не открывает ордера. Я хочу поставить советника на четыре графика с разными настройками, но не получается.

Надо на первом графике такие настройки — extern double Lot = 0.1; // Лот
extern double ClosePosition = 200; // Через сколько пунктов закрываем позицию и открываем новую, 0 — не будет закрытия
extern double Drawdown = 100; // Просадка в пунктах, 0 — без просадки
extern int SellOrBuy = 1; // SELL=1, BUY=0
extern int Profit = 10; // Процент прибыли
extern int WhichLotsRise = 0; // Увеличивает ордера: 0 — в просадке, 1 — по тейкпрофиту

на втором графике такие настройки — extern double Lot = 0.1; // Лот
extern double ClosePosition = 200; // Через сколько пунктов закрываем позицию и открываем новую, 0 — не будет закрытия
extern double Drawdown = 100; // Просадка в пунктах, 0 — без просадки
extern int SellOrBuy = 1; // SELL=1, BUY=0
extern int Profit = 10; // Процент прибыли
extern int WhichLotsRise = 1; // Увеличивает ордера: 0 — в просадке, 1 — по тейкпрофиту

на третьем графике такие настройки — extern double Lot = 0.1; // Лот
extern double ClosePosition = 200; // Через сколько пунктов закрываем позицию и открываем новую, 0 — не будет закрытия
extern double Drawdown = 100; // Просадка в пунктах, 0 — без просадки
extern int SellOrBuy = 0; // SELL=1, BUY=0
extern int Profit = 10; // Процент прибыли
extern int WhichLotsRise = 0; // Увеличивает ордера: 0 — в просадке, 1 — по тейкпрофиту

на четвертом графике такие настройки — extern double Lot = 0.1; // Лот
extern double ClosePosition = 200; // Через сколько пунктов закрываем позицию и открываем новую, 0 — не будет закрытия
extern double Drawdown = 100; // Просадка в пунктах, 0 — без просадки
extern int SellOrBuy = 0; // SELL=1, BUY=0
extern int Profit = 10; // Процент прибыли
extern int WhichLotsRise = 1; // Увеличивает ордера: 0 — в просадке, 1 — по тейкпрофиту
везде меняются только такие параметры — SellOrBuy — и — WhichLotsRise. Везде ставил разный меджик но все равно неработает.

Спасибо
avatar

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

  • 20 февраля 2015, 07:27
+
0
Правильно поняла, что на 4 графика одной валютной пары? Проверю.
avatar

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

  • 20 февраля 2015, 10:42
+
0
Да правильно. Сейчас еще раз попробовал, установил по о череде четыре советника с разными настройками, и только три советника открыли ордера. Меджики разные. А если сейчас выключить термина и сразу включить, тогда советники пропадут с графиков.
avatar

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

  • 20 февраля 2015, 11:21
+
0
А если сейчас выключить термина и сразу включить, тогда советники пропадут с графиков.
:D 
Принцип работы советника (не мной придуман): чтобы всегда работал терминал, и был включен интернет. Как вы думаете, почему советники ставят на удаленные сервера? В том окне, куда переносите советник, тайм-фрейм уже менять нельзя и тем более закрывать его.
avatar

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

  • 20 февраля 2015, 11:30
+
0
Только что заменила файл:
opentraders.ru/downloads/587/
пробуйте
avatar

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

  • 20 февраля 2015, 11:41
+
0
Спасибо, все заработало *good* 
avatar

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

  • 20 февраля 2015, 12:19
+
0
Вы комментарий сегодняшний удалили. Все работает?
avatar

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

  • 21 февраля 2015, 16:35
+
0
Да была проблема, но все решилось. А возможно совместить разные настройки в одном советнике? То есть что бы в этом советнике было четыре группы настроек. Типа 4 советника в одном.
Редактирован: 21 февраля 2015, 17:45
avatar

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

  • 21 февраля 2015, 17:16
+
0
Вы пытались в работающем советнике менять параметры? Этого в нем не предусмотрено. Опишите в новом топике, что вы хотите, и я подумаю над этим.
avatar

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

  • 21 февраля 2015, 22:39
комментарий был удален 2015-02-21 14:06:41 beton2011

+
0
Привет Oxy. Можно попросить поправить кое что в этом советники. Вот в этом режиме он почему то открывает первый лот в два раза больше чем задано в настройках. И можно еще за место настройки ClosePosition сделать простой тейк-профит, что бы ордера открывались сразу с тейк-профитом и при закрытия ордера по тейк-профиту, сразу открывается новый ордер. Спасибо

extern double Lot = 0.1; // Лот
extern double ClosePosition = 200; // Через сколько пунктов закрываем позицию и открываем новую, 0 — не будет закрытия
extern double Drawdown = 100; // Просадка в пунктах, 0 — без просадки
extern int SellOrBuy = 0; // SELL=1, BUY=0
extern int Profit = 10; // Процент прибыли
extern int WhichLotsRise = 1; // Увеличивает ордера: 0 — в просадке, 1 — по тейкпрофиту
avatar

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

  • 23 февраля 2015, 14:41
+
0
Не поняла. Зачем вы в другом топике комментарий удалили и продублировали сюда?
Уже все сделано, я об этом писала вам.
zakaz.opentraders.ru/23169.html#comment99508
opentraders.ru/downloads/587/
avatar

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

  • 23 февраля 2015, 15:02
+
0
Извините заработался. Сейчас проверил советник и все в порядке, все работает правильно. Спасибо
avatar

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

  • 23 февраля 2015, 15:11

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