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

 
todem:

а причем здесь ордер селект?

мы данные берем из индикатора, здесь ордера не задействаованы


вы используете OrderSymbol() -- Возвращает наименование финансового инструмента для текущего выбранного ордера.
Ордер должен быть предварительно выбран с помощью функции OrderSelect().

вот же ваш код:

double CC1=0,CC2=0;
  if(OrderSymbol()=="EURUSD"){ CC1 = iCustom("EURUSD",60,"CC2",3,6,0,1); CC2 = iCustom("EURUSD",60,"CC2",3,6,1,1); }
  if(OrderSymbol()=="GBPUSD"){ CC1 = iCustom("GBPUSD",60,"CC2",3,6,0,1); CC2 = iCustom("GBPUSD",60,"CC2",3,6,2,1); }
  if(OrderSymbol()=="USDCHF"){ CC1 = iCustom("USDCHF",60,"CC2",3,6,0,1); CC2 = iCustom("USDCHF",60,"CC2",3,6,3,1); }
  if(OrderSymbol()=="USDJPY"){ CC1 = iCustom("USDJPY",60,"CC2",3,6,0,1); CC2 = iCustom("USDJPY",60,"CC2",3,6,4,1); }
  if(OrderSymbol()=="USDCAD"){ CC1 = iCustom("USDCAD",60,"CC2",3,6,0,1); CC2 = iCustom("USDCAD",60,"CC2",3,6,5,1); }
  if(OrderSymbol()=="AUDUSD"){ CC1 = iCustom("AUDUSD",60,"CC2",3,6,0,1); CC2 = iCustom("AUDUSD",60,"CC2",3,6,6,1); }
  if(OrderSymbol()=="NZDUSD"){ CC1 = iCustom("NZDUSD",60,"CC2",3,6,0,1); CC2 = iCustom("NZDUSD",60,"CC2",3,6,7,1); }
  if(OrderSymbol()=="EURGBP"){ CC1 = iCustom("EURGBP",60,"CC2",3,6,1,1); CC2 = iCustom("EURGBP",60,"CC2",3,6,2,1); }
  if(OrderSymbol()=="EURCHF"){ CC1 = iCustom("EURCHF",60,"CC2",3,6,1,1); CC2 = iCustom("EURCHF",60,"CC2",3,6,3,1); }
  if(OrderSymbol()=="EURJPY"){ CC1 = iCustom("EURJPY",60,"CC2",3,6,1,1); CC2 = iCustom("EURJPY",60,"CC2",3,6,4,1); }
здесь CC1, CC2 получают значения соответствующие инструменту выбранного ордера

если бы вы привели весь код, то можно было бы не догадываться, а сказать наверняка в чём проблема

 
100yan:

double MA13=iMA(NULL,..... etc
То есть вы хотите сначала посчитать значение машки, т.е. некоторое число, а потом узнать, с каким периодом его посчитали? Не, так не выйдет))
 
eddy:
почему у меня MainBuffer[i] бывает больше 100? где ошибка?
MathMax и MathMin возвращают номер бара, а не сам экстремум
 
abolk:


вы используете OrderSymbol() -- Возвращает наименование финансового инструмента для текущего выбранного ордера.
Ордер должен быть предварительно выбран с помощью функции OrderSelect().

вот же ваш код:

здесь CC1, CC2 получают значения соответствующие инструменту выбранного ордера

если бы вы привели весь код, то можно было бы не догадываться, а сказать наверняка в чём проблема

ОРДЕР убери... чтоб было Symbol()
 
Sergey_Rogozin:

Любопытно, что выдает во всех случаях одни и те же значения.

То есть для всех символов выдает одно и то же.

double CC1=0,CC2=0;
  if(Symbol()=="EURUSD"){ CC1 = iCustom("EURUSD",60,"CC2",3,6,0,1); CC2 = iCustom("EURUSD",60,"CC2",3,6,1,1); }
  if(Symbol()=="GBPUSD"){ CC1 = iCustom("GBPUSD",60,"CC2",3,6,0,1); CC2 = iCustom("GBPUSD",60,"CC2",3,6,2,1); }
  if(Symbol()=="USDCHF"){ CC1 = iCustom("USDCHF",60,"CC2",3,6,0,1); CC2 = iCustom("USDCHF",60,"CC2",3,6,3,1); }
  if(Symbol()=="USDJPY"){ CC1 = iCustom("USDJPY",60,"CC2",3,6,0,1); CC2 = iCustom("USDJPY",60,"CC2",3,6,4,1); }
  if(Symbol()=="USDCAD"){ CC1 = iCustom("USDCAD",60,"CC2",3,6,0,1); CC2 = iCustom("USDCAD",60,"CC2",3,6,5,1); }
  if(Symbol()=="AUDUSD"){ CC1 = iCustom("AUDUSD",60,"CC2",3,6,0,1); CC2 = iCustom("AUDUSD",60,"CC2",3,6,6,1); }
  if(Symbol()=="NZDUSD"){ CC1 = iCustom("NZDUSD",60,"CC2",3,6,0,1); CC2 = iCustom("NZDUSD",60,"CC2",3,6,7,1); }
  if(Symbol()=="EURGBP"){ CC1 = iCustom("EURGBP",60,"CC2",3,6,1,1); CC2 = iCustom("EURGBP",60,"CC2",3,6,2,1); }
  if(Symbol()=="EURCHF"){ CC1 = iCustom("EURCHF",60,"CC2",3,6,1,1); CC2 = iCustom("EURCHF",60,"CC2",3,6,3,1); }
  if(Symbol()=="EURJPY"){ CC1 = iCustom("EURJPY",60,"CC2",3,6,1,1); CC2 = iCustom("EURJPY",60,"CC2",3,6,4,1); }
вот так правильнее
 
alsu:
MathMax и MathMin возвращают номер бара, а не сам экстремум

MathMax возвращает максимальное значение из 2х величин - High[i] и 0, если натыкается на High[i] больший чем в HighesBuffer[i] - возвращает его.

MathMin возвращает минимальное значение из 2х величин - Low[i] и 99999, если натыкается на Low[i] меньший чем в LowesBuffer[i] - возвращает его.

 
alsu:
То есть вы хотите сначала посчитать значение машки, т.е. некоторое число, а потом узнать, с каким периодом его посчитали? Не, так не выйдет))

Не совсем так... можно ли опереться на какой-то показатель МА(не обязательно на значение). Но не знаю как ...
 
для чего опереться? и зачем?
 
eddy:
для чего опереться? и зачем?

есть рабочая МАшка (период может меняться)

есть отдельная функция использующая этот же период . Для красоты решения необходимо ссылаться на МА, а не на ее период.

нужно вычислить период МАшки...

 
todem:
вот так правильнее

О! Ну, конечно же. Чой-то глаз мне замусолило. Какая грубая ошибка!

Спасибо.