Избранное трейдера Самый лучший трейдер смартлаба
Лениво бродив по западному интернету, нашел интересную стратегию, которая своими корнями уходит к некоему Larry Connors. Стратегия построена на простом RSI с периодом 2.
Суть ее в следующем:
покупаем индексный ETF, когда значение меньше 15 на закрытии дня (да, это можно сделать без проблем и проскальзываний на всех ликвидных ETF) и продаем, когда клоуз текущего дня выше хая предыдущего (можете придумать свои выходы, стратегия не очень-то чувствительна к выходам).
В общем MR в чистом виде. И в принципе это должно работать на большинстве ETF развитых рынков.
Тестил на Multicharts.Net, код ниже.
using System; using System.Drawing; using System.Linq; using PowerLanguage.Function; using ATCenterProxy.interop; namespace PowerLanguage.Strategy { public class rsi_2_spy : SignalObject { public rsi_2_spy(object _ctx):base(_ctx){} private IOrderMarket buy_order; private IOrderMarket sell_order; private RSI m_RSI; private VariableSeries<Double> m_myrsi; private ISeries<double> Price { get; set; } protected override void Create() { // create variable objects, function objects, order objects etc. buy_order = OrderCreator.MarketThisBar(new SOrderParameters(Contracts.Default, EOrderAction.Buy)); sell_order = OrderCreator.MarketThisBar(new SOrderParameters(Contracts.Default, EOrderAction.Sell)); m_RSI = new RSI(this); m_myrsi = new VariableSeries<Double>(this); } protected override void StartCalc() { // assign inputs Price = Bars.Close; m_RSI.price = Price; m_RSI.length = 2; } protected override void CalcBar(){ // strategy logic m_myrsi.Value = m_RSI[0]; if (Bars.Close[0]>Bars.High[1]){ sell_order.Send(); return; } if (m_RSI[0]<15){ buy_order.Send(); } } } }
Индикатор MACD широко известен среди трейдеров. Мне его сигналы помогают находить развороты и предупреждения о коррекциях. Много написано, как использовать его сигналы для открытия позиций, а мы сегодня рассмотрим прикладное применение в алготрейдинге.
Все будет тестироваться на Quantopian (см. сюда), писать код будем на Python. Рассмотрим следующие стратегии:
В серии следующих постов я расскажу о том, как проводить бэктестинг с помощью Python. Для тестирования торговых стратегий я использую сайт Quantopian. Почему именно его? Потому что он: а) простой и наглядный; б) дает доступ к бесплатным историческим данным; в) имеет богатый функционал.
Где скачать тики срочного рынка?
Есть Финам и МФД, оба источника в последнее время дают качественные данные.
Но у Финама есть ограничения по времени скачивания и объему одного файла.
МФД подвисает при подкачке за много дней.
Оказывается, есть еще один интересный источник данных для фьючерсов.
Данные предоставляет Церих: ftp://athistory.zerich.com/.
Данные совпадают с Финамом и МФД, проверено несколько дней.
Причем там хранятся не только тики, но и заявки, и можно собрать стакан.
Данные хранятся в формате qsh от Qscalp (http://www.qscalp.ru/),
который нужно еще разархивировать.
На www.qscalp.ru/ можно найти некоторые утилиты для обработки данных и торговый привод.
Но мне этого показалось недостаточно, пришлось дорабатывать.
Ниже результат, интерфейс в виде красивых окошек сделать поленился, но и так все понятно.
Сначала программа скачивает данные в формате qsh, потом их конвертирует.
Имейте в виду, некоторые фьючерсы необходимо домножить на число.
Например, фьючерс РТС нормирован на число 10, фьючерс MIX — на 25.
Для работы программы нужен .NET Framework 4.0.
Регистрация по ссылке необязательна, можно так скачать.
Пользуйтесь!
www.dropbox.com/s/flz70pnf325405f/qsh_example.exe?dl=0
Я конечно же не стану сейчас первооткрывателем, но как я уже говорил, трейдинг не то место, где можно придумать что-то новое! Тренд и флет!
Многие трейдеры, начинающие и не только не знают глобальную и важнейшую вещь. У рынка существует всего 2 фазы: это трендовая фаза движения или импульсная фаза и вторая фаза — это фаза консолидации или фаза баланса(флета).
Почему важно понимать, что есть эти фазы? Потому что в каждой из фаз рынка нужно действовать по разному!