какой режим и качество моделирования?
индюк считается на том ТФ где идёт тест, или на другом?
индюк считается на том ТФ где идёт тест, или на другом?
2. Как можно вывести свой график прямо из советника. А то пришлось
стрелочками отделаться.
если в шаблоне tester.tpl нет ни одного индикатора, он должен сам
нарисоваться
komposter:
какой режим и качество моделирования?
моделируется EUR_USD M15 по ценам открытиякакой режим и качество моделирования?
индюк считается на том ТФ где идёт тест, или на другом?
на том же ТФесли в шаблоне tester.tpl нет ни одного индикатора, он должен сам
нарисоваться
Сам индикатор вырисовывается(красная сполошная линия), но я
хотел вывести в виде графика возвращаемые значения iCustom (для сравнения).Смог только стрелочками обозначить.
моделируется EUR_USD M15 по ценам открытия
качество? (в отчёте написано)Сам индикатор вырисовывается(красная сполошная линия), но я
хотел вывести в виде графика возвращаемые значения iCustom (для сравнения).
Смог только стрелочками обозначить.
кастум тоже должен рисоваться..Смог только стрелочками обозначить.
А для дальнейшего разбора надо код - так ничего нельзя сказать. ..
И ещё - можно попробовать вызывать кастум не на 0-м баре, а на 1-м - и сравнить.
komposter:
А для дальнейшего разбора надо код - так ничего нельзя сказать. ..
И ещё - можно попробовать вызывать кастум не на 0-м баре, а на 1-м - и сравнить.на 1-м баре тоже не всегда совпадает
ИНДИКАТОР
ШАБЛОН ЭКСПЕРТА
моделируется EUR_USD M15 по ценам открытия. качество? (в отчёте написано)
Качество - n/aкастум тоже должен рисоваться..
Может и должен, но не рисуется.А для дальнейшего разбора надо код - так ничего нельзя сказать. ..
И ещё - можно попробовать вызывать кастум не на 0-м баре, а на 1-м - и сравнить.
ИНДИКАТОР
#property copyright "Copyright © 2006, Aksakal" #property link "http://www.sita.net" #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Red //---- input parameters extern double cPTICo=73; extern double cStochCo=25; //---- buffers double ExtMapBuffer1[]; int limit = 0; double curExtremum = 0; //+------------------------------------------------------------------+ //| Вспомагательные функции | //+------------------------------------------------------------------+ int loc_Sign(double value) // 1 при Value>0 // -1 при Value<0 // 0 при Value=0 { if (value > 0){return(1);} else{if (value < 0){return(-1);} else{return(0);} } } double loc_calcAdd(double stochVal, double Coef) // return value > 0 if ShochVal > 50 // return value < 0 if ShochVal < 50 { // Print("Stoch Value=", stochVal); return(MathSqrt(MathAbs(2*(0.5 - stochVal/100))) * Coef * loc_Sign(stochVal - 50)); } //+------------------------------------------------------------------+ //| индикатор //| //| prevValue - значение индикатора на предыдущем баре //| curExtremum - максимальное(минимальное) значение цены //+------------------------------------------------------------------+ double konkop_PTI1Stoch1(int CurBar, double prevValue) { double stochAdd; // сумма поправки вносимой по стохастику double value; // промежуточная переменная с результатом stochAdd = loc_calcAdd(iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,CurBar), cStochCo); if (prevValue <= Close[CurBar]) { // UpTrend if (curExtremum < Close[CurBar]) { curExtremum = Close[CurBar]; } value = curExtremum*(1-(cPTICo/100)); if (stochAdd < 0) { value = value + stochAdd; } return (value); }else{ // DownTrend if (curExtremum > Close[CurBar]) { curExtremum = Close[CurBar]; } value = curExtremum*(1+(cPTICo/100)); if (stochAdd > 0) { value = value + stochAdd; } return (value); } } //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); //---- IndicatorShortName("PTI1_2e("+cPTICo+","+cStochCo+")"); //---- cPTICo=cPTICo/100; cStochCo=cStochCo/10000; //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); //---- if(counted_bars < 0) return(-1); if(counted_bars >0) counted_bars--; limit = Bars - counted_bars; for(int i=limit; i>=0; i--) { ExtMapBuffer1[i] = konkop_PTI1Stoch1(i, ExtMapBuffer1[i+1]); } //---- return(0); }
ШАБЛОН ЭКСПЕРТА
#property copyright "Copyright © 2006, Aksakal" #property link "http://www.sita.net" //---- input parameters extern double cPTICo=85; extern double cStochCo=25; double Points; datetime prevtime = 0; // время образовагия нового бара int posbuy = -1; // куда была открыта последняя позиция 1 - BUY, 0 - SELL double iValue=0; int linenum=0; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- Points = MarketInfo (Symbol(), MODE_POINT); //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int cnt = 0; int total = 0; //---- проверки --------------------- if(Bars<100) { Print("На графике менее 100 баров"); return(0); // на графике менее 100 баров } // проверяем, что образовался новый бар, если бар старый - выходим if(prevtime == Time[0]) { return(0); } prevtime = Time[0]; //---- iValue = iCustom( NULL, 0, "Test_PTI1_2emp", cPTICo, cStochCo, 0, 1 ); ObjectCreate(StringConcatenate("object", linenum), OBJ_ARROW, 0, Time[1], iValue); linenum++; //---- операции ---------------- return(0); }
Качество - n/a
Я бы всё таки сделал бы 1-й барРежим моделирования - по ценам открытия. Это значит, что бар с индексом [0] состоит из одной котировки. Соответственно, индикатор в это время показывает не то значение, которое будет показывать на уже сформировавшемся баре.
Код, вроде бы правильный... Единственное, я бы сделал вот что:
ExtMapBuffer1[limit+1]=0; //мало ли, какое там значение до инициализации? а этот индекс используется ([i+1]) for(int i=limit; i>=0; i--) { ExtMapBuffer1[i] = konkop_PTI1Stoch1(i, ExtMapBuffer1[i+1]); }
надо пробовать.
Контрольные значения для сравнения можно выводить в журнал.
Может и должен, но не рисуется.
в шаблоне tester.tpl точно нет никаких индикаторов?
komposter:
Код, вроде бы правильный... Единственное, я бы сделал вот что:Спасибо. Учту. Хотя похоже, что просто ExtMapBuffer1[limit+1]=0; не прокатит.
Надо проверку ставить. Подумаю как.
надо пробовать.
Контрольные значения для сравнения можно выводить в журнал.Вывожу print'ом. Когда печатаю из индикатора - все правильно, с графиком
совпадает. Печатаю - из советника значения iCustom - не совпадает.
У меня в каталогах трейдера такого файла вообще нет.
Я бы всё таки сделал бы 1-й бар
Режим моделирования - по ценам открытия. Это значит, что бар с индексом [0] состоит из одной котировки. Соответственно, индикатор в это время показывает не то значение, которое будет показывать на уже сформировавшемся баре.
Так последний пример и использует 1-й бар.Режим моделирования - по ценам открытия. Это значит, что бар с индексом [0] состоит из одной котировки. Соответственно, индикатор в это время показывает не то значение, которое будет показывать на уже сформировавшемся баре.
Код, вроде бы правильный... Единственное, я бы сделал вот что:
ExtMapBuffer1[limit+1]=0; //мало ли, какое там значение до инициализации? а этот индекс используется ([i+1]) for(int i=limit; i>=0; i--) { ExtMapBuffer1[i] = konkop_PTI1Stoch1(i, ExtMapBuffer1[i+1]); }
надо пробовать.
Контрольные значения для сравнения можно выводить в журнал.
в шаблоне tester.tpl точно нет никаких индикаторов?
Если это файл, то где он должен лежать?У меня в каталогах трейдера такого файла вообще нет.
Спасибо. Учту. Хотя похоже, что просто ExtMapBuffer1[limit+1]=0; не прокатит.
Надо проверку ставить. Подумаю как.
не надо проверок - можно просто ExtMapBuffer1[Bars-1]=0;Вывожу print'ом. Когда печатаю из индикатора - все правильно, с графиком
совпадает. Печатаю - из советника значения iCustom - не совпадает.
странно... вот ещё посмотрел - в индюке cPTICo=73;, а из эксперта вызывается
cPTICo=85; - может, в этом дело?Если это файл, то где он должен лежать?
У меня в каталогах трейдера такого файла вообще нет.
настраиваешь вид графика, как тебе нравиться. Потом нажимаешь
на кнгопочку-меню "Шаблоны", "Сохранить", имя вводишь
tester.tplУ меня в каталогах трейдера такого файла вообще нет.
После теста все графики будут открываться в этом виде
И ещё можно попробовать ф-цию HideTestIndicators() поставить в false. Я, правда, никогда не пользовался - не знаю...
не надо проверок - можно просто ExtMapBuffer1[Bars-1]=0;.
Красивое решение. Буду использовать, если с проблемой разберемся
:)странно... вот ещё посмотрел - в индюке cPTICo=73;, а из эксперта вызывается
cPTICo=85; - может, в этом дело?
Поставил по 85. Не помогает.настраиваешь вид графика, как тебе нравиться. Потом нажимаешь
на кнгопочку-меню "Шаблоны", "Сохранить", имя вводишь
tester.tpl
После теста все графики будут открываться в этом виде.
Полезная штуковина. Но на результаты тестера не влияет.После теста все графики будут открываться в этом виде.
И ещё можно попробовать ф-цию HideTestIndicators() поставить в false. Я, правда, никогда не пользовался - не знаю..
.
Смысла нет - пусть показывается. Ведь идикатор рисуется правильно.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
1. График индикатора на тестере стратегий и значения iCustom этого индикатора местами не совпадают.
Причем график рисуется правильно, а iCustom возвращает неверные значения.
Пробовал на билдах 186 и 188
2. Как можно вывести свой график прямо из советника. А то пришлось стрелочками отделаться.
Безмерно благодарен.
Облегченный код советника и результаты его работы на рисунке: