[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 131
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я тут переделал кусок кода, по поводу того, что спрашивал вчера. Теперь всё как нужно. Ниже привожу 3 функции, что б было видно, что используется для получения первоначального сигнала, т.к. это только начала того, что я пишу.
Вот функция покупки:
Вот здесь есть строка:
открытие позиции у нас по цене ND(fastMa + i_thresholdFromMa * pt), а открывает вообще не там. Почему?
Уже 2 дня бью, не знаю уже что и делать. В коде всё последовательно же. Для реала не писал никакие проверки, пока что для тестера пишу.
Вот скрин, например,
На графике видно, что цена не выше fastMa (красной машки), а ниже вообще. Но в коде, явно указано условие, чтоб отложка была по цене:
В чём подвох профессионалы? Я уже не знаю что и делать дальше...
Здравствуйте.Написал индикатор от индикатора.Изначальный индикатор "Signal-Signal" при установке его на график показывает свои значения на всех предыдущих барах (он считается на всех барах,начиная бара №[1] ).А вот индикатор,построенный от него (этот индикатор считается с бара №[0] ), показывает свои значения только с момента установки его на график.Значения правильные, но на предыдущих барах -"пусто".Подскажите, пожалуйста, как это исправить.Много чего пробовал,но ничего не получается.
Мой код:
#property indicator_separate_window #property indicator_minimum -7 #property indicator_maximum 7 #property indicator_buffers 2 #property indicator_color1 Yellow #property indicator_color2 DarkOrange #property indicator_width1 2 #property indicator_width2 2 #property indicator_level1 0.0 //--- buffers double UpMapBuffer[]; double DnMapBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexBuffer(0,UpMapBuffer); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexBuffer(1,DnMapBuffer); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int vb; // внутренний бар int i; for(i=1;i<Bars-34-1;i++) { double AO_Sig_Sig_1 = iCustom(NULL,0,"Signal-Signal",0,i); double AO_Sig_Sig_2 = iCustom(NULL,0,"Signal-Signal",0,i+1); if((High[i]<=High[i+1])&&(Low[i]>=Low[i+1])&&(AO_Sig_Sig_1==AO_Sig_Sig_2)) vb++; if((AO_Sig_Sig_1!=AO_Sig_Sig_2)||(i>3+vb)) break; } i=i*(AO_Sig_Sig_1); if(MathAbs(i)>3+vb) i=0; if(i>0) { UpMapBuffer[0]=i; } else { UpMapBuffer[0]=0; } if(i<0) { DnMapBuffer[0]=i; } else { DnMapBuffer[0]=0; } //---- return(0); } //+------------------------------------------------------------------+Виктор, думаю, что надо ставить отложку по Аску + дистанция, а в условии прописать отношение Аска и Машки, тогда будет то, что Вы хотите. Пробуйте!
На графике видно, что цена не выше fastMa (красной машки), а ниже вообще. Но в коде, явно указано условие, чтоб отложка была по цене:
В чём подвох профессионалы? Я уже не знаю что и делать дальше...
Виктор, думаю, что надо ставить отложку по Аску + дистанция, а в условии прописать отношение Аска и Машки, тогда будет то, что Вы хотите. Пробуйте!
Борис, Вот я так и сделал:
А вот открытие позиции:
Вроде всё верно. Но воз и ныне там.
Возможно в тот момент времени, когда выставлялся ордер, МАшка была ниже, чем сейчас нарисовано. Попробуйте брать значения машек не с 0-го, а с 1-ого бара.
пробывал, разницы нету. Вернул назад.. Для меня важно то, что происходит в данный момент времени, а не происходило раньше.
Вот скрин (если значение получаемое от машки не 0, а 1) :
Виктор, поэтому условия я прописываю в старте, чтобы всё видеть, как на ладони, тогда легче найти логические ошибки, особенно, когда нет ещё достаточных знаний и опыта, к которым я сам себя ещё долго буду причислять. Профессионалы легко манипулируют функциями, файлами, библиотеками и, наверно, забыли, как они постепенно осваивали все эти премудрости. А мы не можем изучать теорию без практики, да и многое ещё зависит от склада характера каждого человека.
Борис, Вот я так и сделал:
А вот открытие позиции:
Вроде всё верно. Но воз и ныне там.
пробывал, разницы нету. Вернул назад.. Для меня важно то, что происходит в данный момент времени, а не происходило раньше.
Вот скрин (если значение получаемое от машки не 0, а 1) :
Ну наконец уже скажите, что именно хотите сделать... Например: МАшка такая-то движется вверх и она выше МАшки такой-то, при этом цена там-то , ниже/выше МАшки такой-то и если всё это true, то выставить такую-то отложку на таком-то расстоянии. Я вам подскажу примерный алгоритм. А то из кусочков вашего кода, вырванных из контекста, сложно вас направить в нужном направлении. А ведь задачка-то для пятого класса (утрированно)
По поводу выделенного: работайте по ценам открытия, тогда не будет перерисовки МАшек на нулевом баре
... сложно вас направить в нужном направлении...
ИМХО, не сложно, но очень просто "направить" или отправить, ибо товарисч уж слишком рьяно взялся за борьбу с машками и отложками, толком не потрудившись изучить учебник и документацию. :-)
ИМХО, не сложно, но очень просто "направить" или отправить, ибо товарисч уж слишком рьяно взялся за борьбу с машками и отложками, толком не потрудившись изучить учебник и документацию. :-)
Значит человек сам себя этими камнями обложил и двигает их, двигает.
Большое спасибо. именно то, что необходимо)