Автор |
Сообщение |
Romant
Зарегистрирован: 02.02.2011
Сообщения: 10
|
Мне право неловко, но спрошу
Я как раз сейчас столкнулся с необходимостьтю реализации разных моделей MM для тестов ... думаю, что зело благодарен буду не я один, если Вы сочтёте возможным выложить формулы пересчёта моделей MM в проценты от эквити. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Да не вопрос Давай кидай сюда модели, я тебе формулы. |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
Romant
Зарегистрирован: 02.02.2011
Сообщения: 10
|
Хорошо
Первая и самая простая: входить на фиксированную сумму денег на контракт.
Например, на счету 100000, я хочу купить по одному контракту на каждые 25000. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Включи фьючерс моде, поставь в информейшн стоимость контракта 25000 и фигачь на все |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Вот это и есть Fix Fractional MM от Р. Джонса (или Райна, я их путаю все время ). Тот, который у меня не получилось реализовать
Я смог реализовать те ММ, в которых в качестве входных данных выступают процентные величины, цены с их производными, стопы.
ЗЫ Олег, жжошь |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
Enhema
Зарегистрирован: 25.12.2014
Сообщения: 36
|
хмм...
Попробую спросить здесь. Поиском не нашел.
Как можно реализовать такой ММ:
При достижении общих убытков за торговый день в размере 2% от счёта торговля в этот день заканчивается.
И так же с Тейк-профитами, например, при достижении результата в +4% от счета торговля в этот день также заканчивается. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Просто никак не решить.
Вижу только один вариант. Каждый вход записываем сайз и цену в файл, а каждый выход считаем прибыль/убыток и суммируем с предыдущими. когда прибыль/убыток превосходит порог блокируем все сигналы. Каждое утро очищаем фал куда ведется запись.
Писанины много.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Enhema
Зарегистрирован: 25.12.2014
Сообщения: 36
|
Олег, много писанины для бектеста?
А если для вашего робота ? Тоже много? Там же и так пишем сайз и цену входа в файл. Если и для робота много, то ладно =) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Если позарез надо, то попробую написать. Для робота.
А если для теста, то для одной бумаги не сложно, а для портфеля тоже геморойно. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Enhema
Зарегистрирован: 25.12.2014
Сообщения: 36
|
Здорово было бы сначала потестить на истории, а там будет видно нужно ли это для робота или нет.
Для одной бумаги будет вполне достаточно. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вот. Код в виде индикатора для лучшего понимания работы. С комментариями.
Код: |
SetOption("InitialEquity", 10000);
Buy = Cross( MACD(), Signal() );
Sell = Cross( Signal(), MACD() );
// trade on next bar open
SetTradeDelays( 1, 1, 1, 1 );
BuyPrice = SellPrice = Open;
// trade size: 75% of current portfolio equity
SetPositionSize( 75, spsPercentOfEquity );
BeginDay = Day() != Ref(Day(), -1); // начало дня
e = Equity(1, 0); // считаем эквити для системы без ограничений на дневную прибыль
startEquity = ValueWhen(BeginDay, e); // значение эквити на начало дня
EquityChange = (e - startEquity)/startEquity * 100; // изменение эквити в %
key = Flip(BeginDay, Sell AND (EquityChange > 2 OR EquityChange < -4)); // если key == 1 то сделки разрешены
// Переписываем правила входа в позицию
Buy = Buy AND key == 1;
Plot(C, "", colorBlack, styleCandle);
PlotShapes(Buy*shapeUpArrow, colorGreen, 0, L);
PlotShapes(sell*shapeDownArrow, colorRed, 0, H);
Plot(e, "Equity", colorRed, styleOwnScale);
Plot(EquityChange, "EquityChange", colorBlue, styleOwnScale);
Plot(key, "key", colorRed, styleOwnScale);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Enhema
Зарегистрирован: 25.12.2014
Сообщения: 36
|
000 писал(а): |
Вот. Код в виде индикатора для лучшего понимания работы. С комментариями.
|
Вот не пойму в чём дело.. где то в деталях косяк кроется, наверное.. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Что не так? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Enhema
Зарегистрирован: 25.12.2014
Сообщения: 36
|
Схема мистично(а скорее всего всё банально) работает только в промежутке с середины декабря 2014 по февраль 2015.
Код не менял. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
В системе используется функция Equity(). Ее использование плохо тем, что она запускает тестер Ами если тестер, по какой либо причине, не может совершать сделки (не хватает денег), то и функция работает не корректно. Разбирайся почему у тебя тестер не хочет совершать сделки (скорее всего просто в настройках тестера надо поставить больше бабала.). |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|