Автор |
Сообщение |
Alexander_tr
Зарегистрирован: 01.04.2010
Сообщения: 60
Откуда: Москва
|
000 писал(а): |
Там с циклом ты намутил что то непонятное мне.
Не следовало использовать функцию TimeFrameGetPrice(.. , in1Minute, ..)
Она предназначена для обращения к бОльшему, чем используемый фрейму.
Не понял зачем используется SelectedValue()
В общем если хочешь разобраться, то напиши как представлял работу этого кода и что от него хотел. |
Олег спасибо большое за ответы, неудобно уже дальше мучать этим вопросом, со временем сам пойму, когда получше в AFL разберусь.
Сейчас для себя уяснил одно, лучше все делать через iif, а циклы только в самом последнем случае использовать.
Хотел еще кое что спросить.
Написал прогу, она мне делает иногда по 2 сделки в день, а я хочу не больше 1 сделки. Есть ли какое то решение.
Что то типа вот такого:
Buy = CondBuy and (первая сделка за сегодня) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Alexander_tr писал(а): |
Хотел еще кое что спросить.
Написал прогу, она мне делает иногда по 2 сделки в день, а я хочу не больше 1 сделки. Есть ли какое то решение.
Что то типа вот такого:
Buy = CondBuy and (первая сделка за сегодня) |
Сделай типа так.
Код: |
Buy = ...;
EndDay = Day() != Ref(Day(), 1);
Counter = Flip(Buy, EndDay);
Buy = Buy AND Ref(Counter == 0, -1);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Alexander_tr
Зарегистрирован: 01.04.2010
Сообщения: 60
Откуда: Москва
|
огромное спасибо! все заработало |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Alexander_tr
Зарегистрирован: 01.04.2010
Сообщения: 60
Откуда: Москва
|
Олег, еще один вопрос (если не надоел еще)
Для своего управления капиталом хочу считать следующее:
Код: |
Maxcapital = ValueWhen( Day() != Ref(Day(),-1) AND Maxcapital < Equity(0), Equity(0) );
|
Т.е. когда достигается новый пик по капиталу, запоминать его.
Но код выше работает не так как хотелось бы, значение maxcapital все время равно значению equity(0) вначале дня.
подскажите пож как быть |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
да просто возьми
Код: |
Maxcapital = highest(Equity(0));
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Alexander_tr
Зарегистрирован: 01.04.2010
Сообщения: 60
Откуда: Москва
|
000 писал(а): |
да просто возьми
Код: |
Maxcapital = highest(Equity(0));
|
|
Мне это не совсем подойдет.
Ситуация какая: внутри дня совершаются сделки, и капитал в моменте может достигать нового максимума, но потом сделка оказывается убыточной и он уменьшается. Т.е. я хочу его измерять в моменты, когда я не в сделке. А это происходит вначале каждого дня, стратегия внутридневная. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
E = IIf(Day() != Ref(Day(),-1), Equirty(0), 0);
Maxcapital = Highest(E);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Alexander_tr
Зарегистрирован: 01.04.2010
Сообщения: 60
Откуда: Москва
|
|
Посмотреть профиль Отправить личное сообщение |
|
Alexander_tr
Зарегистрирован: 01.04.2010
Сообщения: 60
Откуда: Москва
|
000 писал(а): |
Код: |
E = IIf(Day() != Ref(Day(),-1), Equirty(0), 0);
Maxcapital = Highest(E);
|
|
Возникла такая проблема.
Когда я попытался посчитать num = MaxCapital / Openprice;
и нарисовал это, то получилось, что он все время брал maxcapital = начальный капитал
Хотя на графике рисуется, что maxcapital стал больше чем начальный. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Скорее всего ты E считаешь до того как написал правила сделок Buy/Sell/Short/Cover. Поэтому эквити считается без сделок вот и равно всегда начальному значению. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Alexander_tr
Зарегистрирован: 01.04.2010
Сообщения: 60
Откуда: Москва
|
000 писал(а): |
Скорее всего ты E считаешь до того как написал правила сделок Buy/Sell/Short/Cover. Поэтому эквити считается без сделок вот и равно всегда начальному значению. |
действительно, написал после правил помогло |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Alexander_tr
Зарегистрирован: 01.04.2010
Сообщения: 60
Откуда: Москва
|
000 писал(а): |
Скорее всего ты E считаешь до того как написал правила сделок Buy/Sell/Short/Cover. Поэтому эквити считается без сделок вот и равно всегда начальному значению. |
Возникла еще одна проблема с maxcapital
когда я рисую ее на графике equity, она нормально отображается как и хотел, но при расчетах оказалось, что она почему то гораздо больше.
Когда в тестере смотришь сделки, то при капитале в 1000000 птв на фуче за день прибыль составила 56000 птв, а он мне пишет, что типа 46% к капиталу. Ну и соответственно на следующий день заходит мне в позицию, как будто у меня капитал 1,4 млн, хотя это не так.
В настройках фуча поставил
round lot size 1 margin deposit -15 Tick size 5 point value 1
Код: |
buy/sel...
Eq= IIf( Day() != Ref(Day(),-1), Equity(0), 0 );
MaxCapital = Highest(Eq);
num = floor ( MaxCapital / Openprice );
SetPositionSize(num, 4);
Buy = ExRem( Buy, Sell );
Sell = ExRem( Sell, Buy );
Short = ExRem (Short, Cover);
Cover = ExRem (Cover, Short);
|
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ну естественно.
Вот смотри. Ты пишешь бай/сел (сайз пока не установлен) потом считаешь эквити. Она получается как если бы торговал на все деньги. А потом уже устанавливаешь сайз позиции. Не стыковочка.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Кстати. Если используешь функцию Equity() и после неё не переопределяешь сигналы сделок, то ExRem не надо. Equity() сама лишние сигналы удалит. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Alexander_tr
Зарегистрирован: 01.04.2010
Сообщения: 60
Откуда: Москва
|
Что то я в конец запутался.
num и possize перед buysell, Eq и maxcap после. Рузультат: num постоянно 0. maxcap еще не определен, понятно почему 0
после num не логично ставить, что то у меня варианты кончились.
Причем, в тестере он ведь первый день мне правильно все посчитал, сколько контрактов купить , а во второй +44% показал при правильном колве контрактов и все сломалось...
Как быть? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|