Значение и важность бэкстестинга несомненны. При проведении количественного бэкстестинга стратегия должна быть размещена в исторической среде как можно более реальной и близкой. Если некоторые детали в исторической среде игнорируются, все количественное бэкстестинг может быть недействительным. В этой статье будет объяснено, как сделать соответствующее количественное бэкстестинг торговли.
В настоящее время существует множество программ, которые могут делать все это, таких как
FMZ Quant, как коммерческое программное обеспечение для количественной торговли, поставляется с высокопроизводительной системой обратной проверки, использующей рамку обратной проверки for-loop (опрос), чтобы быстрее количественно оценить расчеты.
В качестве примера давайте посмотрим на официальный сайт FMZ Quant (www.fmz.comНажмите на панель управления, Стратегия, выберите стратегию, нажмите на Backtest и перейдите на следующую страницу:
В интерфейсе конфигурации бэкстеста вы можете настроить его в соответствии с вашими реальными потребностями. Например: установить период бэкстеста, цикл линий K, тип данных (данные уровня симуляции или данные уровня реального рынка. Напротив, скорость бэкстеста данных уровня симуляции быстрее, бэкстест данных уровня реального рынка более точен). Кроме того, вы также можете установить комиссионную плату за бэкстест и начальные средства счета.
Нажмите на торговую библиотеку
Всегда существует отклонение между фактической торговой ценой и запланированной торговой ценой. Это смещение, как правило, движется в направлении, неблагоприятном для трейдера, что приводит к дополнительным потерям в торговле. Поэтому необходимо добавить скольжение для моделирования реальной торговой среды.
Заполните
Опция спотовой торговли предназначена в первую очередь для торговли криптовалютами, при обратном тестировании, сохраните ее в настройках по умолчанию будет хорошо. Если вы хотите, вы можете указать все параметры в этих настройках. Кроме того, для некоторых криптовалютных бирж вы также можете установить размеры рычага и другие связанные с ними настройки.
Перед обратным тестированием определите свою торговую стратегию. Здесь мы примем стратегию
// Calculate CMI indicator to distinguish between Oscillating and trend market
CMI:=ABS(C-REF(C,29))/(HHV(H,30)-LLV(L,30))*100;
// Define key prices
KOD:=(H+L+C)/3;
// In the Oscillating market, the closing price is greater than the key price is suitable for selling market, otherwise it is for buying market
BE:=IFELSE(C>KOD,1,0);
SE:=IFELSE(C<=KOD,1,0);
// Define 10-day ATR indicator
TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR10:=MA(TR,10);
// Define the highest and lowest price 3-day moving average
AVG3HI:=MA(H,3);
AVG3LO:=MA(L,3);
// Calculate the entry price of the Oscillating market
LEP:=IFELSE(C>KOD,O+ATR10*0.5,O+ATR10*0.75);
SEP:=IFELSE(C>KOD,O-ATR10*0.75,O-ATR10*0.5);
LEP1:=MAX(LEP,AVG3LO);
SEP1:=MIN(SEP,AVG3HI);
// Calculate the entry price of the trend market
UPBAND:=MA(C,50)+STD(C,50)*2;
DNBAND:=MA(C,50)-STD(C,50)*2;
// Calculate the quit price of the trend market
MA50:=MA(C,50);
// Oscillating strategy logic
CMI<20&&C>=LEP1,BK;
CMI<20&&C<=SEP1,SK;
CMI<20&&C>=AVG3HI,SP;
CMI<20&&C<=AVG3LO,BP;
// Trend strategy logic
CMI>=20&&C>=UPBAND,BK;
CMI>=20&&C<=DNBAND,SK;
CMI>=20&&C<=MA50,SP;
CMI>=20&&C>=MA50,BP;
AUTOFILTER;
В интерфейсе симуляционного бэкстестинга после настройки настроек бэкстестинга нажмите кнопку "Начать бэкстестирование", и результаты бэкстестинга будут отображаться сразу после нескольких секунд. В журнале бэкстестинга будет показано, сколько секунд было использовано для бэкстестинга, журналов и общего количества транзакций. Информация о счете печатает конечные результаты бэкстеста стратегии: средняя прибыль и убытки, прибыль и убытки позиции, маржа, комиссионные сборы и предполагаемые доходы.
В таблице состояния записывается диапазон торговли, позиции, цены позиций, последняя цена, предыдущие типы торговых сигналов, самая высокая и самая низкая цена позиций, количество обновлений, а также информация о капитале и времени.
Среди них наиболее важным показателем эффективности является: коэффициент Шарпа. Это было при реализации комплексного индекса учитывать выгоды и риски, и это важный индекс для измерения продуктов фонда. В целом, это сколько риска вы несете, каждый раз, когда вы получаете прибыль, так что значение коэффициента Шарпа выше, тем лучше.
Годовая волатильность, проще говоря, годовая цифра предполагает, что наблюдения в течение короткого периода времени будут продолжаться в течение года. Это мера риска фонда, но это определенно не полный риск. Например, стратегия А имеет большую волатильность, но она была волатильной вверх, прибыль хорошая; стратегия В имеет небольшую волатильность, но она неуклонно движется ((всего едва не движется).
Наконец, в журнале информации - подробная запись каждой ситуации с посредничеством при обратном тестировании, включая конкретное время торговли, информацию о бирже, тип открытой и закрытой позиции, механизм сопоставления ордеров с механизмом обратного тестирования, а также количество транзакций и печатную информацию.
Многие и в большинстве случаев результаты бэкстестинга будут далеко от того, что вы ожидаете. В конце концов, долгосрочную, стабильную и прибыльную стратегию не так просто получить, что требует вашей способности понимать рынок.
Если результаты обратного теста вашей стратегии приводят к потере денег, не расстраивайтесь. Это на самом деле вполне нормально. Проверьте, неправильно ли интерпретирована логика стратегии кодом, используются ли некоторые экстремальные параметры, используется ли слишком много условий открытия позиции и т. Д. Также необходимо пересмотреть торговые стратегии и торговые идеи под другим углом.
Если результаты обратного теста вашей стратегии очень хороши, кривая финансирования идеальна, с коэффициентом Шарпа выше 1. Пожалуйста, не спешите. В этом случае большинство ситуаций используют будущие функции, кражу цен, переподборку или добавление цены на скольжение и т. Д. Вы можете использовать данные вне выборки и моделирование торговли на реальном рынке, чтобы исключить эти проблемы.
Выше приведен весь процесс обратного тестирования торговой стратегии, можно сказать, что он был специфичен для каждой детали. Следует отметить, что обратное тестирование исторических данных является идеальной средой, где все риски известны. Поэтому лучше пройти круг бычьего и медвежьего рынка для времени обратного тестирования стратегии. Эффективное количество сделок должно быть не менее 100 раз, чтобы избежать некоторых предвзятых выживших.
Рынок всегда находится в процессе изменения и эволюции. Историческая стратегия обратного тестирования не означает, что будущее будет таким же. Это не только позволяет стратегии справиться с известными возможными рисками в среде обратного тестирования, но и справиться с неизвестными рисками в будущем. Поэтому очень необходимо повысить устойчивость к риску и универсальность стратегии.
Попробуйте скопировать стратегию в этом разделе и проверить ее.
Постарайтесь улучшить и оптимизировать стратегию в этом разделе на основе вашего опыта торговли.