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

 
pavlicos:

Помогите кто  может.Двухвалютный советник,

если совпали условии торговли открывается сделка по первой валюте.

Как написать такое условие "если открыт ордер по первой валюте OP_BUY то открываем по второй OP_SELL

  вот пример  

 

 if (OrdersTotal()== 1  )  // с такой строкой по 2валюте открывает с фонаря и BUY и SELL или 2 ордера SELL

 if ( currenttype == OP_BUY )  //  так не открывает вопше

 if ( currentticket == 1)  //  так тоже не открывает

 secondticket = OrderSend("GBPUSD", OP_SELL, Lots, MarketInfo("GBPUSD", MODE_BID), 2, 0, 0, WindowExpertName(), 0, 0, Red); //Order по 2валюте

  if ( c - d  > а)   // если  условии торговли  совпали, Order по 1валюте открывает  отлично.

 currentticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"macd sample",Magic,0,Green);  //Order по 1валюте

На инструменты, по которым открыты позиции проверять не пробовали?
 
пробовал нo по 2валюте не открывает.
 
evillive:
Цена же есть, отложенный с данной ценой исчез, а рыночный по этой цене появился. А ещё в комментарии иногда запись появляется, что-то вроде "от тикета ххх", где ххх - номер тикета отложенного ордера.
Ага, понял. Спс.
 
int i;
ArraySetAsSeries(ExtMacdBuffer,true);
ArraySetAsSeries(Value,true);
for(i=0;;i++)
ExtMacdBuffer[i]=iMA(NULL,0,InpFastEMA,0,MODE_EMA,PRICE_CLOSE,i)-
                 iMA(NULL,0,InpSlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
ArrayCopy(Value,ExtMacdBuffer,0,0,WHOLE_ARRAY);

Всем, Добрый вечер! Помогите разобраться, хочу в массив Value [] скопировать данные из массива ExtMacdBuffer[] который является разницей значение короткой и длинной EMA, написал выше и ничего не происходит, что не хватает? Может вообще все не правильно?

Заранее благодарен за помощь.     

 
Megagrider:
Вот тут всё видно (смотреть в конце самом).
Попробуй равенство поставить   if(iRSI(NULL,0,14,PRICE_CLOSE,0)=70 || iRSI(NULL,0,14,PRICE_CLOSE,1)=70) одно из двух значений если равно то ....
 
Pokrov:
Попробуй равенство поставить   if(iRSI(NULL,0,14,PRICE_CLOSE,0)=70 || iRSI(NULL,0,14,PRICE_CLOSE,1)=70) одно из двух значений если равно то ....
Это ты на картах такое нагадал или на кофейной гуще?
 
Не работает... :(
 
Megagrider:
Не работает... :(
И не должно работать. Прежде чем пробовать надо думать. Я видел твой вопрос, но не заметил ошибок потому и промолчал. Попробуй присвоить значения RSI переменным и вывести их в комментарий для наглядности. И используй эти переменные в проверке условий.
 
AlexeyVik:
И не должно работать. Прежде чем пробовать надо думать. Я видел твой вопрос, но не заметил ошибок потому и промолчал. Попробуй присвоить значения RSI переменным и вывести их в комментарий для наглядности. И используй эти переменные в проверке условий.
А при чем здесь переменные? если у него условия достигая выше 70 постоянно срабатывают, и если я что и не правильно советовал, так это от недостатка тех. подготовки а по смыслу все верно достигая значения 70 сигнал работает, а не выше 70, возможно равенство пишется == , а не =,в этом ошибка да согласен. А вместо рассуждения про кофе и карты лучше бы помог с массивами.  
 
Переменные будут отображаться в комментарии графика и будет видно как они меняются. А значение индикатора может быть равным заданному значению так редко, что замучаешься ждать этого события. Так-что изначально было написано правильно если на первом баре ниже < 70 а на нулевом выше/равно >=, значит произошло пересечение.