0
У нас тогда рушится логика, прописанная вами же и ошибку которой я исправляла:
После закрытия ордера, советник должен ждать след. точку пересечения скользящих. В некоторых случаях он не дожидается.

Здесь: zakaz.opentraders.ru/22787.html#comment98973
avatar

Oxy

  • 23 февраля 2015, 03:07
0
Что вы подразумеваете под коленом? Никогда не сталкивалась с таким понятием.
Ожидание в пунктах. Включаем советник на бай, а он ждёт пока цена пройдёт х пунктов против и откроет сделку на бай, также на селл.
Чем вас стоповые и лимитные ордера не устраивают?

После этого они отрабатывают каждый свою сетку ордеров автономно друг от друга.
Так в итоге вы хотите сеточный советник с увеличением лота и переносом в безубыток?
Чтобы автономно отработали — магик поменяете при открытии второго советника.
avatar

Oxy

  • 23 февраля 2015, 02:55
+3
Подписываюсь! С праздником, дорогие мужчины!
avatar

Oxy

  • 23 февраля 2015, 02:30
0
В случае положительного теста сова, вознаграждение гарантирую!

Улыбнуло ) В новом топике распишите, что за эксперт вы хотите.
avatar

Oxy

  • 22 февраля 2015, 22:38
0
может посмотрите как сделано в советнике Ilan-Trio

Посмотрю, жду исходник (mq4) Ilan-Trio, а то я логически не понимаю, что вы просите.
avatar

Oxy

  • 22 февраля 2015, 22:36
0
У вас cut скорее всего попал на код прикрепления файла Beton_Exp4.mq4 и мне его не скачать. Поправьте, пожалуйста. Или попросите Бишопа, он поймет про что я.
avatar

Oxy

  • 22 февраля 2015, 13:36
0
Не совсем поняла, что вы хотите.
Могу сделать, чтобы вы в работающем советнике смогли изменять настройки и он под эти изменения адаптировался. Так устроит?
Ведь вы по сути хотите менять только: WhichLotsRise с 0 на 1 и обратно, SellOrBuy с 0 на 1 и обратно.
avatar

Oxy

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

Oxy

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

Oxy

  • 21 февраля 2015, 16:35
0
Это не совсем исходник (стало любопытно и глянула код сегодня). Это декомпилированный файл.
Это сразу понятно по коду, а особенно по названию переменных:

При декомпиляции переменные утрачивают свои первоначальные названия. Плюс сам код местами преобразуется.
В рамках данной группы я не возьмусь за этот советник. По хорошему, логику кода надо прошерстить, прежде чем в него что-то дописывать.
avatar

Oxy

  • 21 февраля 2015, 00:48
0
Позже гляну, скорее всего во вторник. С праздником!
avatar

Oxy

  • 20 февраля 2015, 21:22
0
там же описание, как реализовано:
opentraders.ru/downloads/602/
avatar

Oxy

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

Oxy

  • 20 февраля 2015, 18:17
0
просто беззубый скрипт получится :D  сделаю
avatar

Oxy

  • 20 февраля 2015, 18:09
+1
проверяйте:
opentraders.ru/downloads/601/
Описание там же, по ссылке.
Сделала, что работает на той паре, на которой запущен. Или нужен мультивалютный? Просто слабо представляю одинаковые условия по евро и по йене, к примеру.
avatar

Oxy

  • 20 февраля 2015, 18:06
+1
пишите топик — на следующей неделе сделаю (сб-пн выходной)
avatar

Oxy

  • 20 февраля 2015, 17:25
0
Я вас поняла, что вы уже нашли с алертом и ничего уже не надо делать. Если это не так — напишите, сделаю.
avatar

Oxy

  • 20 февраля 2015, 16:59
0
Я ничего не смогу сделать с файлом с расширением .ex4
Мне нужно расширение .mq4
avatar

Oxy

  • 20 февраля 2015, 15:36
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); 
}
//+------------------------------------------------------------------+


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

Oxy

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