Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 След. |
Автор |
Сообщение |
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Уровень3 = IIf((SAR-Уровень1)<=200), Уровень2, Уровню1)
Входим по уровню3 |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
home30
Зарегистрирован: 17.06.2015
Сообщения: 105
|
Да,спасибо, понял. Никак не соображу еще вот в случае как на картинке. Входить в позицию по пересечению параболика и ЕМА, но при этом цена не перескакивает параболик. В квике делал такое через переменную. По умолчанию переменная равна 0. Если цена перескочила параболик, то переменная становится 1. Как только происходит пересечение средней и параболика, проверяем, чтобы переменная оставалась в 1, тогда входим в позицию. При выходе из позиции переменную снова обнуляем. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Я так и не понял, когда входим? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
home30
Зарегистрирован: 17.06.2015
Сообщения: 105
|
000 писал(а): |
Я так и не понял, когда входим? |
Входим,когда ema пересекает sar. Но при этом в момент пересечения sar и ema цена не перескакивает пароболик. На картинке это же видно. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Типа так чтоли?
Код: |
Parab = SAR( 0.02, 0.2 );
SMA = MA(C, 20);
direction = Flip(Cross(C, Parab), Cross(Parab, C));
Buy = direction == 1 AND ref(direction, -1) == 1 AND Cross(Parab, SMA);
Short = direction == 0 AND ref(direction, -1) == 0 AND Cross(SMA, Parab);
Plot(C, "", colorBlack, styleCandle);
Plot(Parab, "parab", colorRed);
Plot(SMA, "SMA", colorBlue);
PlotShapes(Buy*shapeUpArrow, colorGreen, 0, L);
PlotShapes(Short*shapeDownArrow, colorRed, 0, H);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
home30
Зарегистрирован: 17.06.2015
Сообщения: 105
|
Спасибо.Только входы наоборот. Попутно хотел спросить, если тестируем реверсную стратегию, то как выходить по окончании дневной сессии в 18-45. Вот в этом случае, например:
Код: |
...
TradeTime = TimeNum() >= 100500 AND TimeNum() <= 184400;
Short =Sell= direction == 1 AND Ref(direction, -1) == 1 AND Cross(Parab, SMA) AND TradeTime;
Buy = Cover=direction == 0 AND Ref(direction, -1) == 0 AND Cross(SMA, Parab) AND TradeTime;
|
Выше в постах ты мне писал, как закрывать, но только если входы и выходы отдельно, без переворотов через TimeNum()>184400. А тут как ? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
В конце дня? Ну например так.
Код: |
Sell = Cover = Day() != Ref(Day(), 1); |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
home30
Зарегистрирован: 17.06.2015
Сообщения: 105
|
Да, понял. Вот еще ситуацию как разрулить.
Код: |
ShortLevel = формула расчета уровня;
BuyLevel = формула расчета уровня;
Buy = Cross(BuyLevel,L) AND Ref(Parab > C, -1) AND TradeTime;
BuyPrice = BuyLevel;
Sell = Cross(Parab,O) OR TimeNum()>184400;
SellPrice=Max(C,ShortLevel);
Short = Cross(H,ShortLevel) AND Ref(Parab < C, -1) AND TradeTime;
ShortPrice = ShortLevel;
Cover = Cross(Open,Parab) AND TimeNum()>184400;
CoverPrice =Min(C,BuyLevel);
|
По этому коду он переворачивает лонг в шорт, хотя надо держать до обратного пересечения параболика. Ну т.е. если мы воршли в лонг и уровень шорта у нас наступил раньше обратного пересечения параболика, тогда в шорт не входим, а держим лонг и выходим на перескоке параболика. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Получается, что у тебя выход всегда на пересечении параболика. Так и пиши в коде. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
home30
Зарегистрирован: 17.06.2015
Сообщения: 105
|
000 писал(а): |
Получается, что у тебя выход всегда на пересечении параболика. Так и пиши в коде. |
Ну я так и пишу
Код: |
Sell = Cross(Parab,O) OR TimeNum()>184400;
|
А он почему-то переворачивается. Если цена на дошла до уровня шорта, и пересечение произошло раньше (как на картинке), тогда правильно считает. Если написать SellPrice=C, подразумевая закрытие свечи после перескока параболика, не помогает тоже. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
В настройках тестера убери галку Reverse entry signal forces exit |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
home30
Зарегистрирован: 17.06.2015
Сообщения: 105
|
000 писал(а): |
В настройках тестера убери галку Reverse entry signal forces exit |
О, спасибо. Помогло. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
home30
Зарегистрирован: 17.06.2015
Сообщения: 105
|
А еще подскажи, что нужно в параметрах тестера указать, чтобы посчитать историю с учетом плечей и реинвестирования. Например, сейчас ГО на ФРТС 12 000. Объем при этом 102 000 руб. (ну плюс-минус). Грубо, это плечо 1 к 8,5. Если у нас в тесте растет прибыль, то мы же можем увеличивать кол-во лотов.
Сейчас я просто вбил в поле Initial equiti 200 000 (за период 11-15 годов выше цены не было) и в коде указал SetPositionSize( 1, spsShares ). Он считает только по одному контракту. Интересно посмотреть на результат с реинвестированием. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
home30
Зарегистрирован: 17.06.2015
Сообщения: 105
|
Учебник читал. И не раз. Вкладка General, поле Account Margin. Если плечо 1 к 9, тогда ставим там 11 (100/9). А в поле начальный капитал ставить 12 000. Правильно ? Но как быть в случае, если контракт стоит в декабре 12 года 150 тысяч, а сейчас он стоит 90 тыс. И это при одинаковом ГО в 12 000. При плече 1 к 9 он не даст открыть позу на 150 тыс даже на 1 контракт, если я правильно понимаю. Выходит, надо смотреть и под каждый период подгонять значение плеча и каждый период считать отдельно ? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|