Блог им. diamante |Тест открытой ТС

Лениво бродив по западному интернету, нашел интересную стратегию, которая своими корнями уходит к некоему 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();
                        }
                        
                }
        }
}


( Читать дальше )

Блог им. diamante |Дата фиды и автоматизация трейдинга на NYSE для непрофессионалов

Писал коментарий к посту http://smart-lab.ru/blog/262419.php, но он получается очень объемным. Решил немного расширить и оформить отдельным постом. Возможно, кому-то будет полезным. 

Опишу немного нестандартные способы автоматизации трейдинга, фильтрации акций и геренации сигналов для частного трейдинга и неглубокой разработки. В моем понимании из одной задачи вытекают другие. 

АПИ платформ, TOS и платные программы описывать не буду. Информации и так очень много в свободном доступе. Кто захочет-найдет.

Первый вопрос — где брать маркет дату. Историческую и в удобном формате. 
Совсем бесплатно  проблематично найти что то стоящее. Никто не дает маркет дату бесплатно. риал тайм можно брать с яху финанс, через их апи и получать, например, в эксель, но история доступна в дневках только. Риал тайм, без истории в тот же эксель можно тянуть из стерлинга через АПИ или через RTD add in, что проще.  Другой костыль — брать АПИ фьюжина(можно демку) и качать историю куда-то. Тут уже нужно писать свой код. 

Теперь о платных вариантах



( Читать дальше )

....все тэги
UPDONW
Новый дизайн