Помощь в кодировании - страница 149

 

Привет, Младен,

Спасибо еще раз за вашу помощь. и мне нужно снова

в следующем индикаторе я хотел бы получить стрелку "buy" и "sell" на том же самом баре. (я имею в виду, когда условия rsi, cci и cmo происходят на том же самом баре (время)). вы можете модифицировать?

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 Blue

#property indicator_color2 Red

extern int barsToProcess=100000;

//

double ExtMapBuffer1[];

double ExtMapBuffer2[];

//------------------------------------------------------------------

//

//------------------------------------------------------------------

int init()

{

SetIndexBuffer(0,ExtMapBuffer1); SetIndexStyle(0,DRAW_ARROW,0,2); SetIndexArrow(0,233);

SetIndexBuffer(1,ExtMapBuffer2); SetIndexStyle(1,DRAW_ARROW,0,2); SetIndexArrow(1,234);

return(0);

}

int deinit() { return(0); }

//------------------------------------------------------------------

//

//------------------------------------------------------------------

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars>0)counted_bars--;

int limit=Bars-counted_bars; if(limit>barsToProcess)limit=barsToProcess;

for(int i=limit;i>=0;i--)

{

double rsi=iRSI(NULL,0,5,PRICE_CLOSE,i);

double cci=iCCI(NULL,0,15,PRICE_CLOSE,i);

double cci1=iCCI(NULL,0,18,PRICE_CLOSE,i);

double cmo=iCustom(NULL,0, "cmo",false,18,0,i);

if(rsi>80 && cci>250 && cmo>50)

ExtMapBuffer1=Low+5*Point;

else ExtMapBuffer1=EMPTY_VALUE;

if(rsi<20 && cci1<-250 && cmo<-50)

ExtMapBuffer2=High-5*Point;

else ExtMapBuffer2=EMPTY_VALUE;

}

return(0);

}

 
anonimm:
Привет Младен,

Спасибо еще раз за вашу помощь. и мне нужно снова

в следующем индикаторе я хотел бы получить стрелку "купить" и "продать" на одном и том же баре (я имею в виду, когда условия rsi, cci и cmo происходят на одном и том же баре (времени)). вы можете модифицировать?

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 Blue

#property indicator_color2 Red

extern int barsToProcess=100000;

//

double ExtMapBuffer1[];

double ExtMapBuffer2[];

//------------------------------------------------------------------

//

//------------------------------------------------------------------

int init()

{

SetIndexBuffer(0,ExtMapBuffer1); SetIndexStyle(0,DRAW_ARROW,0,2); SetIndexArrow(0,233);

SetIndexBuffer(1,ExtMapBuffer2); SetIndexStyle(1,DRAW_ARROW,0,2); SetIndexArrow(1,234);

return(0);

}

int deinit() { return(0); }

//------------------------------------------------------------------

//

//------------------------------------------------------------------

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars>0)counted_bars--;

int limit=Bars-counted_bars; if(limit>barsToProcess)limit=barsToProcess;

for(int i=limit;i>=0;i--)

{

double rsi=iRSI(NULL,0,5,PRICE_CLOSE,i);

double cci=iCCI(NULL,0,15,PRICE_CLOSE,i);

double cci1=iCCI(NULL,0,18,PRICE_CLOSE,i);

double cmo=iCustom(NULL,0, "cmo",false,18,0,i);

if(rsi>80 && cci>250 && cmo>50)

ExtMapBuffer1=Low+5*Point;

else ExtMapBuffer1=EMPTY_VALUE;

if(rsi<20 && cci1<-250 && cmo<-50)

ExtMapBuffer2=High-5*Point;

else ExtMapBuffer2=EMPTY_VALUE;

}

return(0);

}

Привет Anonimm, добавил буфер тренда, должно работать, но не имея рядом cmo для проверки не уверен на 100%.

Файлы:
 

Здравствуйте, Младен,

Спасибо за быстрый ответ. Инди - это хорошо.

Не могли бы вы модифицировать его, чтобы он мог показывать не только один понедельник (если мы выберем понедельник), но и 300 понедельников (или может быть скорректирован).

ИЛИ он будет показывать не только один вторник (если мы выберем вторник), но он будет показывать 300 вторников (можно настроить, это намного лучше).

Спасибо и с наилучшими пожеланиями,

антон

mladen:
anton1 Вот, пожалуйста. Вы можете выбрать день недели и установить цвета линий.
 
anton1:
Привет, Младен,

Спасибо за быстрый ответ. Инди - это хорошо.

Не могли бы вы модифицировать его, чтобы он мог показывать не только один понедельник (если мы выбираем понедельник), но и 300 понедельников (или может быть скорректирован).

ИЛИ он будет показывать не только один вторник (если мы выберем вторник), но и 300 вторников (можно настроить, это гораздо лучше).

Спасибо и с наилучшими пожеланиями,

антон

Вот, пожалуйста

Файлы:
 

Привет, Младен,

Не могли бы Вы модифицировать этот инди "year-open"? Мне нужно, чтобы этот инди показывал не только один год-открытия, но и много лет до этого в истории.

Спасибо и всегда с уважением,

антон

mladen:
fareastol

Это может найти вам цену открытия года довольно быстро:

for (int i=0; i<12; i++) if (TimeYear(iTime(NULL,PERIOD_MN1,i))!=TimeYear(iTime(NULL,PERIOD_MN1,i+1))) break;

double yearOpen = iOpen(NULL,PERIOD_MN1,i);

Затем вы просто вычисляете разницу между текущим закрытием (Close[0] не имеет значения, какой таймфрейм вы используете при вызове) и ценой открытия года, и это будет все. Если вам это нужно в качестве индикатора, прикрепил один, который отображает горизонтальную линию на текущей цене открытия года и выписывает расстояние в пунктах в качестве комментария
 
anton1:
Привет, Младен,

Не могли бы вы модифицировать этот инди "year-open"? Мне нужно, чтобы этот инди показывал не только один год-открытие, но и много лет до этого в истории.

Спасибо и всегда с уважением,

антон

Это не индикатор. Пожалуйста, прочитайте это сообщение еще раз

 

Привет, Младен,

Вы замечательный и добрый человек.

Спасибо большое большое большое..............

С наилучшими пожеланиями,

антон

примечание: привет, мой друг, Младен, как я должен благодарить тебя?

mladen:
Вот, пожалуйста
 

извините...

Может быть, вы готовы закодировать 'yearly-openning-horizontalline', пожалуйста.

Спасибо,

антон

Примечание: этот инди показывает годовую линию открытия, но только для этого года. Мне нужен инди, который может показывать историческую годовую линию.

mladen:
Это не индикатор. Пожалуйста, прочитайте этот пост еще раз
 

Привет, Младен,

Не могли бы Вы модифицировать этот инди "year-open"? Мне нужно, чтобы этот инди показывал не только один год-открытия, но и много лет до этого в истории.

Спасибо и всегда с уважением,

антон

mladen:
fareastol

Это может найти вам цену открытия года довольно быстро:

for (int i=0; i<12; i++) if (TimeYear(iTime(NULL,PERIOD_MN1,i))!=TimeYear(iTime(NULL,PERIOD_MN1,i+1))) break;

double yearOpen = iOpen(NULL,PERIOD_MN1,i);

Затем вы просто вычисляете разницу между текущим закрытием (Close[0] не имеет значения, какой таймфрейм вы используете, когда вы вызываете его) и ценой открытия года, и это будет все. Если вам это нужно в качестве индикатора, прикрепил один, который отображает горизонтальную линию на текущей цене открытия года и выписывает расстояние в пунктах в качестве комментария
 
anton1:
Привет, Младен,

Не могли бы вы модифицировать этот инди "year-open"? Мне нужно, чтобы этот инди показывал не только один год-открытие, но и много лет до этого в истории.

Спасибо и всегда с уважением,

антон

Антон,

Здесь прилагается мой индикатор, который поможет вам нарисовать уровень Year Open любого года в прошлом. Обратите внимание, что параметр по умолчанию NumYear = 0 означает цену открытия текущего года, для отображения значений прошлых лет необходимо увеличить это число. Кроме того, для отображения нескольких лет одновременно на одном графике, необходимо также соответствующим образом изменить название ID.

Этот индикатор полностью основан на работе Младена, плюс некоторые незначительные изменения. Я просто любитель в кодировании. Так что если он не работает, это моя слабая кодировка, и, возможно, Младен приложит к этому руку.

С уважением,

fareastol

Файлы: