[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 1112

 
abolk:
не "предвзято" - а как к воровству. чужое без спроса брать не хорошо.
К воровству я отношусь тоже не положительно.... Просто мне достался советник с открытым кодом....
 

Вот примерчик кода..

extern string A25="Настройки индикатора RSI";

extern int RSIPeriod= 21;

extern int RSIPrice = 0;

extern int RSIHighLevel= 70;

extern int RSILowLevel = 30;

//+------------------------------------------------------------------+
// Пример:
//+------------------------------------------------------------------+

double RSI1 = iRSI(Symbolt, 0, RSIPeriod, RSIPrice, 1);
double RSI2 = iRSI(Symbolt, 0, RSIPeriod, RSIPrice, 2);
if(RSI2<RSILowLevel && RSI1>RSILowLevel && RSI1<RSIHighLevel) // Buy Signal
Signal=1;
if(RSI2>RSIHighLevel && RSI1<RSIHighLevel && RSI1>RSILowLevel) // Sell Signal
Signal=2;


Это обычное использование рси.

вопросик такой, как поставить отложеный ордер на основе этого кода?

скажем находится рси выше 70, как поставить отложку на определенное растояние от текущей цены, и наоборот

Хоть в этом поможете? )

 
ostrik:
К воровству я отношусь тоже не положительно.... Просто мне достался советник с открытым кодом....


Все может быть, но оригинал от декомпила пока отличить несложно.

А это то же самое что воровство. Найдете оригинал, то проблем не будет

Хотя бывают и оригинальные доработки, там сложнее.

 

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


 
Eliza:

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

1. "не прорисовывать" или "не вычислять" ?

2. Поставьте в конце вычислений удаление значений из ненужных диапазонов. Про iBarShift вам уже рассказали.

3. Осторожнее с IndicatorCounted

 
sergeev:

1. "не прорисовывать" или "не вычислять" ?

2. Поставьте в конце вычислений удаление значений из ненужных диапазонов. Про iBarShift вам уже рассказали.

3. Осторожнее с IndicatorCounted

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

2. понятно, только если я определила бар далее все что влево или вправо от него не рисовать... есть пример если не сложно?

3. у меня его нет, у меня другой индикатор в котором не нужна эта функция.

 
Eliza:

2. понятно, только если я определила бар далее все что влево или вправо от него не рисовать... есть пример если не сложно?

справа или слева: не рисовать с помощью индикаторного буфера, это значит или не рассчитывать(не присваивать) ему значение, или присвоить значение EMPTY_VALUE

слева: ограничить прорисовку индикатора слева - задайте в функции init() с помощью SetIndexDrawBegin() номер бара до которого не будут рисоваться значения

 
Eliza:

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

2. понятно, только если я определила бар далее все что влево или вправо от него не рисовать... есть пример если не сложно?

3. у меня его нет, у меня другой индикатор в котором не нужна эта функция.

Просто присвойте требуемым индексам индикаторных буферов значение EMPTY_VALUE
 

Не получается, у меня и буферов то нету в этом индикаторе(.

Вот функция которая устанавливает координаты в индикаторе....

//имя - name, координата1 - value, координата2 - value1, цвет - line_color
void PlotLine(string name,double value,double value1,double line_color)
{
   double valueN=NormalizeDouble(value,Digits);
   double valueN1=NormalizeDouble(value1,Digits);
   bool res = ObjectCreate(name,OBJ_TREND,0,Data_1,valueN,Data_2,valueN1);
   ObjectSet(name, OBJPROP_WIDTH, 1);
   ObjectSet(name, OBJPROP_STYLE, style);
   ObjectSet(name, OBJPROP_RAY, false);
   ObjectSet(name, OBJPROP_BACK, true);
   ObjectSet(name, OBJPROP_COLOR, line_color);
} 
 
Eliza:

Не получается, у меня и буферов то нету в этом индикаторе(.

Вот функция которая устанавливает координаты в индикаторе....


тогда фильтруйте время
Data_1