Вопрос начинающего - страница 2

 
OrderModify(12345,,newstoploss,0); Так?
 

Прежде чем модифицировать позицию, нужно её выбрать среди других открытых поз . Вы это сделали.?

. Замечу, что для селл и бай сделок стопы ставятся по разному! 
Так что надо еще выбрать и тип позиции.

Непонятно, зачем вам это! Возьмите готовый трейлинг стоп и разберитесь, как это делается.

 

Во внешние параметры советника вставляете

extern bool UseTrailing = true;//выключатель трейлинг стопа
extern int lMinProfit = 50;    //порог начала работы для бай-позиций
extern int sMinProfit = 60;    //порог начала работы для селл-позиций
extern int lTrailingStop = 50; //размер трала для бай
extern int sTrailingStop = 60;  //размер трала для селл
extern int lTrailingStep = 5;   //шаг трала
extern int sTrailingStep = 5;   // шаг трала
В функцию int start() вставте строку
int start()
  {
  //-------------------------------------------------------------------   
  if (UseTrailing) TrailPositions(); //трейлинг стоп
И в самом конце кода вне функции int start() вставите
//ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ
void TrailPositions() //пороговый трейлинг стоп
{
  int Orders = OrdersTotal();
  for (int i=0; i<Orders; i++) {
    if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
    if (OrderSymbol() != Symbol()) continue;   

    if (OrderType() == OP_BUY) {
      if (Bid-OrderOpenPrice() > lMinProfit*Point) {
        if (OrderStopLoss() < Bid-(lTrailingStop+lTrailingStep-1)*Point) {
          OrderModify(OrderTicket(), OrderOpenPrice(), Bid-lTrailingStop*Point,
                                                    OrderTakeProfit(), 0, Blue);
        }}}
    if (OrderType() == OP_SELL) {
      if (OrderOpenPrice()-Ask > sMinProfit*Point) {
        if (OrderStopLoss() > Ask+(sTrailingStop+sTrailingStep-1)*Point || 
                                                      OrderStopLoss() == 0) {
          OrderModify(OrderTicket(), OrderOpenPrice(), Ask+sTrailingStop*Point,
                                                     OrderTakeProfit(), 0, Blue);
        }}}}}
//+------------------------------------------------------------------+
 
Написал наконец то советника своего.) Теперь новая проблема - как протестить его на более продолжительном отрезке времени (у меня только с мая 2006 года)? Инструмент - EURJPY. Заранее спсибо за помощь.
 
МТ4/меню СЕРВИС/АРХИВ КОТИРОВОК/FOREX/Название инструмента, напр. EURJPY/ЗАГРУЗИТЬ
 
И снова привет) Вот получил такие результаты (год - прибыль%/ просадка%): 1999-93/24; 2000-64/13, 2001-48/40; 2002-55/36; 2003-49/28; 2004-101/25; 2005-51/24; 2006-95/18; 2007-37/42; 2008-21/40. Работа фиксированным лотом. Хочу посоветоваться, насколько эти цифры хороши? В частности просадка 42%? Спасибо заранее заа высказывания. Забыл сказать - трйлинг в алгоритме не используется.
 
Это график за весь период (фиксированный объём сделок): http://s42.radikal.ru/i098/0808/81/66e78a0d922c.gif