Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 След. |
Автор |
Сообщение |
Сергей
Зарегистрирован: 16.03.2008
Сообщения: 168
|
000 писал(а): |
Цитата: |
Олег привет, подскажи тебе доводилось встречать неправильную работу функции applystop с параметром volatile =True
|
Нет. Не доводилось. Зато доводилось видеть неправилную работу всего Ами после многочисленных тестов и прогонов разных кодов AFL. Перезагрузка как правило спасает. |
Перегружал ами, короче везде соблюдает условие, выходит на заданном проценте, а тут фиксанул по открытию новой свечки, я в шоке, незнаю что делать, к формуле притензий нет там все предельно ясно, а вот на этой свечке ему приспичило выйти по опену.. пипец |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А можешь дать похожий код с таким же косяком? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Сергей
Зарегистрирован: 16.03.2008
Сообщения: 168
|
000 писал(а): |
А можешь дать похожий код с таким же косяком? |
Отписал в личку |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Disperados
Зарегистрирован: 02.03.2008
Сообщения: 10
|
прошу помочь разобраться
местами дыры, хз почему
Код: |
_SECTION_BEGIN("VA");
TrueLow=IIf(Ref( Close,-1) < Low,(Ref( Close,-1)),Low);
TrueHigh=IIf(Ref (Close,-1) >High,(Ref( Close,-1)), High);
Xt =((Close - TrueLow)-(TrueHigh - Close) )/(TrueHigh - TrueLow);
TV = Sum(Volume, 11);
TVA = Sum( Volume * Xt, 11);
VA = (TVA / TV) * 100;
Plot(VA,"VA",4,1);
Plot(0,"0",4,1);
Buy = VA>Ref(VA,-1) AND VA>0;
Sell = VA<Ref(VA,-1) AND VA<0;
Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
_SECTION_END(); |
добавляю в код пивоты, вообще перестает работать
Код: |
DayH = TimeFrameGetPrice("H", inDaily, -1); // yesterdays high
DayL = TimeFrameGetPrice("L", inDaily, -1); // low
DayC = TimeFrameGetPrice("C", inDaily, -1); // close
PP = (DayL + DayH + DayC)/3 ;
R1 = (2 * PP) - DayL;
S1 = (2 * PP) - DayH;
R2 = (PP - S1) + R1;
S2 = PP - (R1 - S1);
R3 = DayH+2*(PP-DayL) ;
S3 = DayL-2*(DayH-PP) ;
|
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Посмотрел код. Все написано совершенно правильно и у меня работает.
Возможно косяки в данных. Иногда бывает, что если данные не определены (например Volume), то код косячит.
Кроме того если тут
Код: |
Xt =((Close - TrueLow)-(TrueHigh - Close) )/(TrueHigh - TrueLow);
|
По какой либо причине TrueHigh = TrueLow, то получается деление на ноль.
В таких случаях помогает функция NZ() |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Disperados
Зарегистрирован: 02.03.2008
Сообщения: 10
|
000 писал(а): |
Посмотрел код. Все написано совершенно правильно и у меня работает.
Возможно косяки в данных. Иногда бывает, что если данные не определены (например Volume), то код косячит.
Кроме того если тут
Код: |
Xt =((Close - TrueLow)-(TrueHigh - Close) )/(TrueHigh - TrueLow);
|
По какой либо причине TrueHigh = TrueLow, то получается деление на ноль.
В таких случаях помогает функция NZ() |
Боюсь показаться идиотом, но спрошу, Олег а это как?
И еще вопрос данный код перестает работать с пивотами.
У меня уже третий день камасутра с двумя кусками системы.
По отдельности работают, вместе никак.
Пивоты тоже пробовал переписывать(TimeFrameExpand, TimeFrameCompress) результат тот-же.
Таки склоняюсь к мысли, что с фильтром что-то не то. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Цитата: |
Боюсь показаться идиотом, но спрошу, Олег а это как?
|
Напиши в начале кода
Код: |
Volume = Nz(Volume);
|
Чтобы исключить косяки с объемом если он совсем не определен (это на всякий случай)
и измени строку
Код: |
Xt =((Close - TrueLow)-(TrueHigh - Close) )/(TrueHigh - TrueLow);
|
на
Код: |
Xt =Nz(((Close - TrueLow)-(TrueHigh - Close) )/(TrueHigh - TrueLow));
|
Чтобы убрать возможные косяки с делением на ноль.
Цитата: |
И еще вопрос данный код перестает работать с пивотами.
У меня уже третий день камасутра с двумя кусками системы.
По отдельности работают, вместе никак. |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Disperados
Зарегистрирован: 02.03.2008
Сообщения: 10
|
А если в условие добавить
Код: |
PlotShapes(IIf(Buy,shapeUpArrow,0),27,0,Graph0,20);
PlotShapes(IIf(Sell,shapeDownArrow,0),19,0,Graph0,-20); |
и сравнить вариант с пивотами и без... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Disperados писал(а): |
А если в условие добавить
Код: |
PlotShapes(IIf(Buy,shapeUpArrow,0),27,0,Graph0,20);
PlotShapes(IIf(Sell,shapeDownArrow,0),19,0,Graph0,-20); |
и сравнить вариант с пивотами и без... |
Не вопрос.
Правда чуток код подшаманил.
Код: |
TrueLow = IIf(Ref( Close,-1) < Low,(Ref( Close,-1)), Low);
TrueHigh = IIf(Ref (Close,-1) > High,(Ref( Close,-1)), High);
Xt =Nz(((Close - TrueLow)-(TrueHigh - Close))/(TrueHigh - TrueLow));
TV = Nz(Sum(Volume, 11));
TVA = Sum( Volume * Xt, 11);
VA = (TVA / TV) * 100;
//Plot(VA,"VA",4,1);
//Plot(0,"0",4,1);
Buy = VA > Ref(VA,-1)AND VA > 0;
Sell = VA < Ref(VA,-1) AND VA < 0;
Buy = ExRem(Buy, Sell);
Sell = ExRem(Sell, Buy);
DayH = TimeFrameGetPrice("H", inDaily, -1); // yesterdays high
DayL = TimeFrameGetPrice("L", inDaily, -1); // low
DayC = TimeFrameGetPrice("C", inDaily, -1); // close
PP = (DayL + DayH + DayC)/3 ;
R1 = (2 * PP) - DayL;
S1 = (2 * PP) - DayH;
R2 = (PP - S1) + R1;
S2 = PP - (R1 - S1);
R3 = DayH + 2*(PP - DayL) ;
S3 = DayL - 2*(DayH - PP) ;
Plot(C, "", colorBlack, styleCandle);
Plot(S2, "", colorRed);
PlotShapes(Buy*shapeUpArrow,colorGreen,0,Close,-20);
PlotShapes(Sell*shapeDownArrow,colorRed,0,Close,-20);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Disperados
Зарегистрирован: 02.03.2008
Сообщения: 10
|
Олег, ответил в личку, посмотри пожалуйста. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Напишу. Может кому пригодится.
Как ни странно был косяк с функцией Sum()
Строка
Код: |
TVA = Sum( Volume * Xt, 11); |
Нифига не работала. Пробую понять в чем дело. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А дело было именно в том, что суммировались значения которые иногда становились недействительными потому, что не совсем правильно стояли скобки ф-ции Nz(). |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Disperados
Зарегистрирован: 02.03.2008
Сообщения: 10
|
Спасибо, а то я уж и не знал, что еще делать.
Как только код не переписывал, извращался.
Буду дальше скрипты переписывать...
Еще раз большое спасибо! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Disperados
Зарегистрирован: 02.03.2008
Сообщения: 10
|
В последнем варианте только индюк отрицательное значение не принимает.И шорты не работают, потому как VA<0.
Я воспользовался первым вариантом.
Сравнил с данными Мульта, значение разные, но кривая получается примерно та-же.
Еще раз спасибо! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Это потому, что скобки опять не правильно стояли. Весь числитель надо в скобки. Так.
Код: |
Xt = Nz(((Close - TrueLow)-(TrueHigh - Close))/(TrueHigh - TrueLow));
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|
Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|