подскажите советника, выставляющего фиксированные профиты/стопы - страница 2

 

Уж не помню где "выдрал", ибо нет пре.инфо, текст приведен как достался.

(хотя стиль похож на И. Ким ...)

*

Единственный недостаток этого эксперта в том, если в процессе работы,

независимо от того выставлен уже им стоп или нет перезагрузить терминал,

то он выставит новый стоп (если профит конечно...) на указаном уровне от текущей

на сей момент цены инструмента...

(видимо стоит ввести проверку на наличие выставлен ли уже стоп

или даже на соответствие цены открытия позици и выставляемого...)

*

LevelProfit = 30; // Уровень профита когда он выставит стоп
LevelWLoss = 2; // Уровень безубытка, "добавит" в профит указаное кол. пипс

Например, открыта поза бай на 1.1500, соответственно настройкам выше,

эксперт от 1.1530 и выше поставит стоп на 1.1502

*

Пользуюсь им редко, так что большего сказать нечего... ;)

extern int    LevelProfit  = 30;            // Уровень профита
extern int    LevelWLoss   = 2;             // Уровень безубытка
extern color  clModifyBuy  = Aqua;          // Цвет модификации покупки
extern color  clModifySell = Tomato;        // Цвет модификации продажи


//+----------------------------------------------------------------------------+
//|  Перенос уровня StopLoss                                                   |
//|  Параметры:                                                                |
//|    ldStop  - уровень StopLoss                                              |
//|    lcColor - цвет модификации                                              |
//+----------------------------------------------------------------------------+
void ModifyStopLoss(double ldStop, color lcColor=CLR_NONE) {
  double ldOpen=OrderOpenPrice();
  double ldTake=OrderTakeProfit();

  OrderModify(OrderTicket(), ldOpen, ldStop, ldTake, 0, lcColor);
}

//+----------------------------------------------------------------------------+
//|  Перенос стопа в безубыток                                                 |
//+----------------------------------------------------------------------------+
void MovingInWL() {
  int i, k=OrdersTotal();

  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==Symbol()) {
        if (OrderType()==OP_BUY) {
          if (OrderStopLoss()-OrderOpenPrice()<LevelWLoss*Point) {
            if (Bid-OrderOpenPrice()>LevelProfit*Point) {
              ModifyStopLoss(OrderOpenPrice()+LevelWLoss*Point, clModifyBuy);
            }
          }
        }
        if (OrderType()==OP_SELL) {
          if (OrderStopLoss()==0 || OrderOpenPrice()-OrderStopLoss()<LevelWLoss*Point) {
            if (OrderOpenPrice()-Ask>LevelProfit*Point) {
              ModifyStopLoss(OrderOpenPrice()-LevelWLoss*Point, clModifySell);
            }
          }
        }
      }
    }
  }
}
//+----------------------------------------------------------------------------+
 
kombat >>:

LevelProfit = 30; // Уровень профита когда он выставит стоп
LevelWLoss = 2; // Уровень безубытка, "добавит" в профит указаное кол. пипс

А levelprofit может быть равен единице? 

 
Goose писал(а) >>

А levelprofit может быть равен единице?

Да. И 0 тоже. Если ДЦ позволяет... ;)

Как правило это дилинги с исполнением по маркету.

В общем зависит от параметра "Уровни стопов"

MarketInfo(Symbol(),MODE_STOPLEVEL);

*

Описаный выше некий LevelWLoss - это "шифт" для цены открытия позиции.

Например чтоб компенсировать набежавший -своп...

*

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

если вместо LevelWLoss = 2; подставить фукцию вычисляющую

величину свопа у позиции...

Для +свопа это будет конечно некомильфо, но пригодится допустим

от выбивания стопа раньше времени... точнее уровня...

*

Ить задача то эксперта - вывести в безубыток, а 0 это хоть и не профит, но и не лось. ;)))

 

Сорри... совсем потерялся в дебрях и завалах...

(густо краснея приносит извинения :)))

Вот это имелось ввиду как эксперт выставляющий стоп.

//+------------------------------------------------------------------+
//|                                               Stop-bezubytok.mq4 |
//+------------------------------------------------------------------+

extern int UrovenBezubytka = 9;

int start()
{
  if( !IsTradeAllowed() ) return(0);
  if( UrovenBezubytka < (Bid-Ask) ) { Print("Уровень безубытка < спреда"); return(0); }
  int TotalTrades = OrdersTotal();
  double dP = UrovenBezubytka*Point;
  for( int cnt=0; cnt<TotalTrades; cnt++ )
  {
    OrderSelect(cnt,SELECT_BY_POS);
    if( OrderType()>OP_SELL || OrderSymbol()!=Symbol() ) continue; 
    if(OrderType()==OP_BUY && OrderStopLoss()<OrderOpenPrice() && (Bid-OrderOpenPrice())>=dP )
    {
      OrderModify(OrderTicket(),OrderOpenPrice(),Bid-dP,OrderTakeProfit(),0,Green);
      return(0);
    }
    if(OrderType()==OP_SELL && (OrderStopLoss()<Point || OrderStopLoss()>OrderOpenPrice()) && (OrderOpenPrice()-Ask)>=dP )
    {
      OrderModify(OrderTicket(),OrderOpenPrice(),Ask+dP,OrderTakeProfit(),0,Red);
      return(0);
    }
  }
  return(0);
}
//+------------------------------------------------------------------+
да и то видимо слегка подредактированый...
 
kombat >>:

Описаный выше некий LevelWLoss - это "шифт" для цены открытия позиции.

Например чтоб компенсировать набежавший -своп...

Спасибо за код. Попробую.

Был бы безубыток, а профиты всегда найдутся)

В общем, я пришел к выводу, что для пипсовки на минутках вся эта механизация малоприменима. У меня наблюдается странная картина - то позиции открываются, то ошибка выскакивает, то уровни стопов неправильные выставляются - все это при минимальных размерах ТП и СЛ. Должно быть, цена скачет, вот и глюки. Если поставить расстояние в 10 пипсов, все нормально работает.

Буду торговать на 5-минутках и к черту ТП в один пипс, право слово! :)

 

 

А еще лучше пипсовать на 4-часовках, по Korey. Он плохого не насоветует...

 
Mathemat >>:

А еще лучше пипсовать на 4-часовках, по Korey.

Не вижу смысла. Зачем брезговать внутридневным движением? Оно сравнимо с месячным, а иногда и больше.

Да и стопы нужны большие на больших фреймах. 

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

 
Goose писал (а) >>

Не вижу смысла. Зачем брезговать внутридневным движением? Оно сравнимо с месячным, а иногда и больше.

Чтобы сэкономить на парике.

 

Мда.. Видать, нужно ускорить события (это я про себя).

--

Goose, чего Вы мучаетесь? Вот Вам: http://autograf.dp.ua/

На этой штуке не только в пипсовку, но и в покер сыграть можно.

Но предупреждаю: программа имеет ярковыраженный эффект привыкания. Однажды попробовав, отказаться уже невозможно..

На том и стоим:)

 

Goose, чего Вы мучаетесь? Вот Вам: http://autograf.dp.ua/

На этой штуке не только в пипсовку, но и в покер сыграть можно.

Но предупреждаю: программа имеет ярковыраженный эффект привыкания. Однажды попробовав, отказаться уже невозможно..

На том и стоим:)

Я наткнулся уже на эту ссылку сегодня. Так что уже имею в виду.

Причина обращения: