Как кодировать? - страница 328

 
mladen:
потому что с пользовательским индикатором вы можете сохранять состояния (тренды) между двумя тиками, а когда вы используете iMA, вы не можете (просто один пример).

То есть теоретически он должен работать, если я заменю индикатор stocastic equator на индикатор iMA в программировании моего эксперта?

С уважением,

Терранс

 
tkuan77:
То есть теоретически это должно работать, если я заменю индикатор stocastic equator на индикатор iMA в программировании моего советника?

С уважением,

Терранс

Терранс

По моему опыту, когда условия, которые должны быть выполнены, немного сложнее или включают наследование предыдущего состояния, лучшее, что вы можете сделать для советника - это пользовательский индикатор с этими условиями. Это поможет вам во многих отношениях, но два из них, возможно, наиболее важны: это упростит код вашего советника (поскольку часть логики будет перенесена в этот пользовательский индикатор) и, что, вероятно, еще более важно, вы сможете проверить "с первого взгляда", каковы будут результаты таких условий (поскольку у вас есть индикатор, который сразу покажет вам, будут ли входы и выходы прибыльными или нет).

Это просто немного больше кодирования, но дает вам гораздо больше свободы и скорости в тестировании и экономит время при проверке некоторых условий, которые в конце концов окажутся убыточными.

 
mladen:
Терранс

По моему опыту, когда условия, которые должны быть выполнены, немного сложнее или включают наследование предыдущего состояния, лучшее, что вы можете сделать для советника - это пользовательский индикатор с этими условиями. Это поможет вам во многих отношениях, но два из них, возможно, наиболее важны: это упростит код вашего советника (поскольку часть логики будет перенесена в этот пользовательский индикатор) и, что, вероятно, еще более важно, вы сможете проверить "на глазок", каковы будут результаты таких условий (поскольку у вас есть индикатор, который сразу покажет вам, будут ли входы и выходы прибыльными или нет).

Это просто немного больше кодирования, но дает вам гораздо больше свободы и скорости в тестировании и экономит время при проверке некоторых условий, которые в конце концов окажутся невыгодными.

Спасибо mladen, мне удалось найти способ обойти это, но при тестировании советника я заметил, что мой Stochastic показывает фиксированный минимум 18.93016 и фиксированный максимум 82.92942.

Я пытаюсь получить фиксированный минимум, равный 0, и фиксированный максимум, равный 100. Есть ли способ добиться этого?

Большое спасибо и пожелания

Терранс

 
tkuan77:
Спасибо mladen, мне удалось найти способ обойти это, но при тестировании советника я заметил, что мой Stochastic показывает фиксированный минимум 18.93016 и фиксированный максимум 82.92942.

Я пытаюсь получить фиксированный минимум, равный 0, и фиксированный максимум, равный 100. Есть ли способ сделать это?

Большое спасибо и пожелания

Терранс

Терранс

Боюсь, что без примера я не понимаю, что вы имеете в виду под "фиксированным минимумом" и "фиксированным максимумом" стохастика. Стохастик, по своей природе расчета, ограничен 0 и 100 и только от самих данных и выбранных цен зависит, достигнет ли он этих минимума и максимума (очень редко, если вы используете поле low/high цены для стохастика. Используйте close/close для ценового поля, и тогда вы сможете достичь 0 и 100).

 

Здравствуйте,

Я пытаюсь создать индикатор, который показывает мне количество последовательных баров одного направления до фактического открытия баров.

У меня есть проблема, когда я меняю tf и когда открываются новые бары. Он не обновляет правильно число.

Можете ли вы мне помочь?

Спасибо

Файлы:
 
dasio:
Привет,

Я пытаюсь создать индикатор, который показывает мне количество последовательных баров одного направления до фактического открытия баров.

У меня есть проблема, когда я меняю tf и когда открываются новые бары. Он не обновляет правильно число.

Можете ли вы мне помочь?

Спасибо

dasio

Попробуйте другую логику (как в примере ниже)

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 LimeGreen

#property indicator_width1 2

double count[];

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

//

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

int init() { SetIndexBuffer(0,count); return(0); }

int deinit() { return(0); }

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

//

//

//

//

//

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

{

count = count;

if (Close>Open) if (count<0) count = 1; else count +=1;

if (Close0) count = -1; else count -=1;

}

return(0);

}
 
mladen:
dasio

Попробуйте использовать другую логику (как в примере ниже).

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 LimeGreen

#property indicator_width1 2

double count[];

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

//

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

int init() { SetIndexBuffer(0,count); return(0); }

int deinit() { return(0); }

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

//

//

//

//

//

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

{

count = count;

if (Close>Open) if (count<0) count = 1; else count +=1;

if (Close0) count = -1; else count -=1;

}

return(0);

}

Хорошо. Спасибо. Я попробую.

 

Хорошо.

Теперь я кодирую то, что мне нужно. Только есть проблема. Число имеет формат x.00000000. Возможно ли, чтобы оно было без цифр, например 1, 2, 3? Спасибо

Файлы:
 
dasio:
Хорошо. Теперь я кодирую то, что мне нужно. Только есть проблема. Число имеет формат x.00000000. Возможно ли, чтобы оно было без цифр, например 1, 2, 3? Спасибо

dasio

Простая замена

NormalizeDouble(MathAbs(count),1)[/CODE]

with

[CODE]DoubleToStr(MathAbs(count),0)
 
mladen:
dasio

Просто замените

NormalizeDouble(MathAbs(count),1)[/CODE]

with

[CODE]DoubleToStr(MathAbs(count),0)

Это правильно -.-"

Спасибо.

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