Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 836

 
Roman_Bryansk:

Спасибо за подсказку. Так и думал, что сообщение как не очень выглядит. Буду знать. Поправляю сообщение.

Есть внизу-справа под вашими сообщениями волшебные опции "удалить" и "правка", незачем новым сообщением то же самое писать, достаточно было исправить там ;)
 
evillive:
Для кода есть кнопка сверху в панели редактирования сообщения или комбинация Ctrl+Alt+M, код становится красивым и читаемым. А про потери, ф-ция SetIndexStyle() имеет параметр цвета, используйте его, не стесняйтесь.

Если не трудно подскажите подробней. Мне нужно просто, чтобы в настройках цвета и ширины было так:

№           цвет           ширина     стиль          

0.            Black              0             0

1.            black              0             0

2.            Red                2             0

3.           Green              2             0 

 

всегда пропадает ширина, т.е. как будто всегда к стандартным настройкам возвращается.

Не судите строго, просто мне видимо не дано, то что дано вам. Еще при компиляции 2 таких сообщения: not all control paths return a value SimpleBars.mq4 115 1.

 
Понял. Мои прощения. Подзамусорил.
 
Roman_Bryansk:

Если не трудно подскажите подробней. Мне нужно просто, чтобы в настройках цвета и ширины было так:

№           цвет           ширина     стиль          

0.            Black              0             0

..

 

всегда пропадает ширина, т.е. как будто всегда к стандартным настройкам возвращается.

Не судите строго, просто мне видимо не дано, то что дано вам. Еще при компиляции 2 таких сообщения: not all control paths return a value SimpleBars.mq4 115 1.


void  SetIndexStyle(
   int     index,       // номер линии
   int     type,        // тип
   int     style=EMPTY, // стиль линии
   int     width=EMPTY, // ширина линии
   color   clr=clrNONE  // цвет
   );

То есть для первого буфера в вашем случае:

SetIndexStyle(0, DRAW_HISTOGRAM, EMPTY,width,Red);

Если настройки не сохраняются, то, как вариант, у вас недостаточно прав на запись в каталог данных терминала. Это бывает при установке его на системный раздел и работе в обычном режиме. Попробуйте запустить терминал в режиме /portable (ключ прописывается в ярлык на запуск терминала).

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

[Deleted]  
Простите меня за наглость)
 
evillive:


То есть для первого буфера в вашем случае:

Если настройки не сохраняются, то, как вариант, у вас недостаточно прав на запись в каталог данных терминала. Это бывает при установке его на системный раздел и работе в обычном режиме. Попробуйте запустить терминал в режиме /portable (ключ прописывается в ярлык на запуск терминала).

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

Вы кудесник )) Заменил на EMPTY и все ок по двум индикаторам. Спасибо большое. По поводу "/portable": когда прописываю в настройках строки объекта пишет не правильный путь.
 
Roman_Bryansk:
Вы кудесник )) Заменил на EMPTY и все ок по двум индикаторам. Спасибо большое. По поводу "/portable": когда прописываю в настройках строки объекта пишет не правильный путь.
А просто надо за кавычки ключ ныносить.
 
Kirill875:
После компиляции терминал зависает. Не могли бы Вы на примере показать куда необходимо вписать.

Вот

Файлы:
testmtf.mq4  4 kb
 

MQL4 

Задумка проста:

Выставляем BuyLimit или SellLimit и предполагаемый TakeProfit.

Задача эксперта выставлять всем ордерам StopLoss таким образом, чтоб предполагаемый убыток был в 10 раз меньше предполагаемого прибытка.

Все работает, эксперт постоянно мониторит ордера и, в случае появления нового ордера, или если я изменял в каком-то ордере цену открытия/тейкпрофит, он сразу подгоняет стоплосс под заданные параметры.

 

Странности начались, когда я решил, что эксперт не должен корректировать стоплоссы тех ордеров, в которых эти стоплоссы выставлены в положение "безубыток".

Я добавил перед модификацией ордера простое условие (ниже в коде оно закомментировано) - эксперт перестал работать. Он вообще перестал модифицировать любые ордера.

Поэкспериментировав, я так и не понял, где моя ошибка, может кто подскажет?

 

Еще одна странность:

Если "else" заменить на прямое условие "if (OrderType()==OP_SELL)" - то эксперт также перестает работать.

Причину этого я тоже не смог найти.

 

int i=0;

void start()
{
   i=OrdersTotal();
   while (i>0)
   {
      i=i-1;
      OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if (MathAbs(OrderTakeProfit()-OrderOpenPrice())!=MathAbs(OrderOpenPrice()-OrderStopLoss())*10)
      {
         if (OrderType()==OP_BUY)
         {
            //if (OrderOpenPrice()>OrderStopLoss())
            OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-(OrderTakeProfit()-OrderOpenPrice())/10,OrderTakeProfit(),0);
         }
         else 
         //if (OrderType()==OP_SELL)
         {
            //if (OrderOpenPrice()<OrderStopLoss())
            OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+(OrderOpenPrice()-OrderTakeProfit())/10,OrderTakeProfit(),0);
         }
      }
   }
}  
 

парни как можно уменьшить дату на один день с этим же временем

например

2015,01,22, 01:00

 а нужно  следующий получить

2015,01,23  01:00 не могу сообразить как .Спасибо .