[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 153

 
buroff:

Нашел индикатор "ForexSession", но временные параметры пришлось изменять. LocalGMT=3 - Москва, BrokerGMT=0 - Лондон, и время начала и окончания сессий тоже изменил.

А вот с Америкой ничего не получается - добавил блок "void ShowSessionBroker()" - чтобы добавить 30мин к НьюЙорку, после компиляции выдается ошибка, а ума исправить у меня не хватает.

Подскажите, добрые люди, что я сделал не так и как исправить

у меня прокомпилировался нормально
 
Sergey_Rogozin:


Спс, а почему в конце 1 а 0 стоит??? а если о сравнить значиние RSI с предыдущем значит нужно писать так?
double RSI = iRSI(NULL,0,14,PRICE_CLOSE,2);
 
Vovo4ka:

Спс, а почему в конце 1 а 0 стоит??? а если о сравнить значиние RSI с предыдущем значит нужно писать так?

Вы вправе поставить номер любого бара. Имеет значение лишь, на каком баре Вы хотите получить значение double RSI.

Для сравнения, естественно, Вам надо иметь, как минимум, два значения, т.е. значения на разных барах.

 
Sergey_Rogozin:
Вы вправе поставить номер любого бара. Имеет значение лишь, на каком баре Вы хотите получить значение double RSI.

Вот скажем если я хочу сравнить значение RSI текущего с предыдущем по цене закрытия, тогда выходит так...
double RSI1 = iRSI(NULL,0,14,PRICE_CLOSE,1);
double RSI2 = iRSI(NULL,0,14,PRICE_CLOSE,2);
и уже дальше сравниваем...так?
 
Vovo4ka:

Вот скажем если я хочу сравнить значение RSI текущего с предыдущем по цене закрытия, тогда выходит так... и уже дальше сравниваем...так?
Совершенно верно. С одной лишь поправкой: текущий бар - это нулевой.
 
Sergey_Rogozin:
Вы вправе поставить номер любого бара. Имеет значение лишь, на каком баре Вы хотите получить значение double RSI.


Да и не подскажешь, как сделать так что бы при сигнале открывал тока одну сделку...а то у меня получается он открыват сделки на все бабо...((((

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

ну как то так..))

 

Необходимо перед открытием ордера проверить на наличие уже открытых ордеров.

Вам понадобится небольшая/несложная функция,

ответ которой и разрешит или запретит вход в рынок при наличии сигнала на вход.

 
Sergey_Rogozin:

Необходимо перед открытием ордера проверить на наличие уже открытых ордеров.

Вам понадобится небольшая/несложная функция,

ответ которой и разрешит или запретит вход в рынок даже при наличии сигнала на вход.


случайно не подскажешь.....?? что бы вставил ....а то так не могу реально оценить советник...((
 
Vovo4ka:

случайно не подскажешь.....?? что бы вставил ....а то так не могу реально оценить советник...((
Выглядит функция приблизительно так
  bool Exist(){
     for(int cnt=OrdersTotal()-1; cnt>=0; cnt--){
        if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)){
          if(OrderMagicNumber()==Magic){
            if(OrderSymbol()==Symbol()){
              if(OrderType()<2)return(true);
      } } } }        
  return(false);} 

То есть при наличии открытых позиций функция их обнаружит и вернет true.

Ваша задача перед OrderSend(.......) поставить нечто вроде этого:

if(!Exist() && Signal)OrderSend(Symbol()........);
где Signal - Ваш сигнал на вход в рынок.
 

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


bool check=OrderChek(ticket);

Comment("Ордер с тикетом ", ticket, "не существует (отработал)");


Не могу найти как это сделать.

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