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

 

Спасибо за код и кодировку Altoronto,

Большое спасибо, я готов к следующему шагу.

 

Спасибо Altoronto,

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

Я приложил картинку с описанием для лучшего понимания:

Можете ли вы или кто-то другой помочь мне закодировать это и закодировать в индикатор?

Еще раз спасибо,

Если это наконец-то сработает, я пошлю бутылку хорошего чилийского вина тем, кто мне поможет,

Еще раз спасибо,

Daniel1983

Файлы:
 
daniel1983:
Спасибо, Altoronto,

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

Я приложил картинку с описанием для лучшего понимания:

Можете ли вы или кто-то другой помочь мне закодировать это и закодировать в индикатор?

Еще раз спасибо,

Если это наконец-то сработает, я пошлю бутылку хорошего чилийского вина тем, кто мне поможет,

Еще раз спасибо,

Даниил1983

Daniel1983

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

 

Господин Младен,

Почему будут изменения в течение дня? Я думаю, что расчеты производятся только один раз и только для первой свечи КАЖДОГО ДНЯ. Не для последующих свечей, не понимаю.

в t=1 дня 1 сделайте расчет для t=0 дня 1, в результате нарисуйте линию

только для того дня, когда вы используете индикатор, в 23:59 дня прекратите работу до следующего дня, цена индикатора для 1-й свечи.

следующий день

в t=1 дня 2 произведите расчет для t= 0 дня 2, в результате нарисуйте линию

надеюсь, здесь более понятно

 
daniel1983:
Г-н Младен,

Почему будут изменения в течение дня? Я думаю, что расчет производится только один раз и только для первой свечи КАЖДОГО ДНЯ. Не для последующих свечей, не понимаю.

в t=1 дня 1 сделайте расчет для t=0 дня 1, результат нарисуйте линию

только для того дня, когда вы используете индикатор, в 23:59 дня прекратите работу до следующего дня, цена индикатора для 1-й свечи.

следующий день

в t=1 дня 2 произвести расчет для t= 0 дня 2, результат нарисовать линию

надеюсь, здесь более понятно

daniel1983

High[1] и Low[1] означают high и low первого закрытого бара текущего графика. Если этот график не дневной, вы получите внутридневные изменения в виде изменения high и low. Кроме того, в любом случае, но когда вы используете дневной график, у вас есть смесь данных из разных таймфреймов.

 

Ok Mladen, позвольте мне посмотреть, если я понимаю, я думаю, что проблема в том, что я смешиваю 2 таймфрейма в одном коде, поэтому если я использую только 1 таймфрейм, например, все для 1 минутного графика, это должно работать:

давайте сделаем все для минутного графика,

код формулы por цена, где должна быть линия =

double minuteOpen = iOpen(NULL,PERIOD_M1,1);

double number = (minuteOpen+High[1]+Low[1])/3;

таким образом, я думаю, что код для горизонтальной линии по цене, рассчитанной, должен быть для t=1, но он не работает

//+------------------------------------------------------------------+

//| Пользовательская функция инициализации индикатора |

//+------------------------------------------------------------------+

int init()

{

//----

return(0);

}

int deinit() {

Comment("");

ObjectDelete("KeyLine");

return(0);

}

//+------------------------------------------------------------------+

//| Пользовательская функция итерации индикатора |

//+------------------------------------------------------------------+

int start()

{

double minuteOpen = iOpen(NULL,PERIOD_M1,1);

double number = (minuteOpen+High[1]+Low[1])/3;

Comment("Ключевая строка: ",число);

ObjectDelete("KeyLine");

ObjectCreate("KeyLine", OBJ_HLINE,1, CurTime(),number);

ObjectSet("KeyLine",OBJPROP_COLOR,Orange);

ObjectSet("KeyLine",OBJPROP_STYLE,STYLE_SOLID);

ObjectsRedraw();

return(0);

}

 
daniel1983:
Хорошо, Младен, позвольте мне посмотреть, если я понимаю, я думаю, что проблема в том, что я смешиваю 2 таймфрейма в одном коде, так что если я использую только 1 таймфрейм, например, все для 1 минутных графиков, это должно работать:

давайте сделаем все для минутного графика,

кодовая формула por цена, где должна быть линия =

double minuteOpen = iOpen(NULL,PERIOD_M1,1);

double number = (minuteOpen+High[1]+Low[1])/3;

таким образом, я думаю, что код для горизонтальной линии по цене, рассчитанной, должен быть для t=1, но он не работает

//+------------------------------------------------------------------+

//| Пользовательская функция инициализации индикатора |

//+------------------------------------------------------------------+

int init()

{

//----

return(0);

}

int deinit() {

Comment("");

ObjectDelete("KeyLine");

return(0);

}

//+------------------------------------------------------------------+

//| Пользовательская функция итерации индикатора |

//+------------------------------------------------------------------+

int start()

{

double minuteOpen = iOpen(NULL,PERIOD_M1,1);

double number = (minuteOpen+High[1]+Low[1])/3;

Comment("Ключевая строка: ",число);

ObjectDelete("KeyLine");

ObjectCreate("KeyLine", OBJ_HLINE,1, CurTime(),number);

ObjectSet("KeyLine",OBJPROP_COLOR,Orange);

ObjectSet("KeyLine",OBJPROP_STYLE,STYLE_SOLID);

ObjectsRedraw();

return(0);

}

Нет

Вы должны сделать это следующим образом:

double number = )iOpen(NULL,PERIOD_D1,1)+iHigh(NULL,PERIOD_D1,1)+iLow(NULL,PERIOD_D1,1))/3

И таким образом вы получите все данные из дневных данных (без смешивания данных из разных таймфреймов).

 

Спасибо, Младен,

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

Рисует одну горизонтальную линию по цене открытия первой минутной свечи каждого дня, свеча в 00:01 минуты, и стирает ее в 23:59 минуты.

Цена для этой линии не меняется во времени на всех периодах одна и та же цена до 23:59, когда она стирается, и снова заводится в 00:01 следующего дня.

Как это будет?

 
daniel1983:
Спасибо, Младен,

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

Рисует одну горизонтальную линию по цене открытия первой минутной свечи каждого дня, свеча в 00:01 минуты, и стирает ее в 23:59 минуты.

Цена для этой линии не меняется во времени для всех периодов одна и та же цена до 23:59, когда она стирается, и снова заводится в 00:01 следующего дня.

Как это будет?

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

 

Спасибо, Младен, я сделал изменения, индикатор выглядит так, но все равно ничего не делает на графике...

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

#property copyright "www.forex-tsd.com"

#property link "www.forex-tsd.com"

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

//+------------------------------------------------------------------+

//| Пользовательская функция инициализации индикатора |

//+------------------------------------------------------------------+

int init()

{

//----

return(0);

}

int deinit() {

Comment("");

ObjectDelete("KeyLine");

return(0);

}

//+------------------------------------------------------------------+

//| Пользовательская функция итерации индикатора |

//+------------------------------------------------------------------+

int start()

{

double number = (iOpen(NULL,PERIOD_D1,1)+iHigh(NULL,PERIOD_D1,1)+iLow(NULL,PERIOD_D1,1))/3;

Comment("Ключевая строка: ",число);

ObjectDelete("KeyLine");

ObjectCreate("KeyLine", OBJ_HLINE,1, CurTime(),number);

ObjectSet("KeyLine",OBJPROP_COLOR,Orange);

ObjectSet("KeyLine",OBJPROP_STYLE,STYLE_SOLID);

ObjectsRedraw();

return(0);

}

Что я делаю не так?

Спасибо