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

 
artmedia70:

Индикатор не может открывать ордера. Этими вещами советник занимается. Если сей код принадлежит индикатору, то нужно делать вывод данных в его буфер, созданный специально для этих данных. Когда нет сигнала, в буфер пишется ноль или пустое значение, а при поступлении сигнала (как в вашем примере), вместо Alert(); записать значение в буфер.
Например:
+1 для Buy и
-1 для Sell.
Далее, уже в советнике по iCustom(); считывать данные с этого буфера.

Либо, прямо в советник прописать все эти условия.

Извиняюсь за тупость, а как сделать вывод данных в буфер и как потом прочитать из буфера можно пример какой то ? ну чтоб он вот так делал как вы описали

"Когда нет сигнала, в буфер пишется ноль или пустое значение, а при поступлении сигнала (как в вашем примере), вместо Alert(); записать значение в буфер."

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

 
Подскажите пожалуйста,как определить максимальный размер бара(т.е High-low больше других) среди трех последних(без нулевого)?
 
Timofei:
Подскажите пожалуйста,как определить максимальный размер бара(т.е High-low больше других) среди трех последних(без нулевого)?
High(iHighest(Symbol(),0,MODE_HIGH,3,1)
Low(iLowest(Symbol(),0,MODE_Low,3,1)
 
todem:

нет
 
Timofei:
Подскажите пожалуйста,как определить максимальный размер бара(т.е High-low больше других) среди трех последних(без нулевого)?


Ответ - решение "в лоб". Считаешь, допустим, X3 = iHigh[3]-iLow[3]...- это для 3-го последнего, аналогично считаешь для 2-го и 1-го, прописывая 2 и 1. Получится три значения переменных X3, X2, X1. Далее их сравниваешь между собой - получаешь максимальный размер бара в абсолютных значениях цены инструмента, допустим, X2 получился больше, чем Х1 и Х3 - кладешь его значение в переменную Max, после чего, Max делишь на Point, в результате получаешь "максимальный размер бара в пунктах среди трех последних (без нулевого)".

П.С. Max = максимальному X2 или Х1 или Х3 - после их сравнения; REZULT = Max/Point; Как то так.

 

Доброго дня!

Вопрос:

допустим, написал свой индикатор ("test123"), вызываю его в эксперте через iCustom:

iCustom(Symbol(), Period(), "test123", 1, 1, 0, 1);

Можно ли проверить, что вызов прошел успешно? GetLastError() нуль в любом случае, проверял

 
Roger:
Может потому, что диапазон слишком маленький, всего 4 секунды? В это время мало тиков в баре и тестер может не попасть в заданный интервал.


Да,вы правы,часть сделок исправилась благодаря увеличению диапазона времени.И я нашел причину других - оказывается в истории не хватает данных(например у меня для 24.08.2011 последний минутный бар был в 23.57 и все дальше провал,после которого сращу начинается новый день.

Спасибо Вам!

 

1. Как определить прибыльность/убыточность последней сделки?

2. В тестере результаты отображаются с учетом спреда, или нужно еще спред вычитать из каждой сделки?

 
Подскажите плз, для чего при нажатии пробела на графике вылазит поле для ввода "symbol,period"?
 
vitali_yv:
Подскажите плз, для чего при нажатии пробела на графике вылазит поле для ввода "symbol,period"?

для программистов.

они так переключать программно могут валюту, таймфрейм или левый бар.


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