Юрий Иванович (jc_trader) wrote,
Юрий Иванович
jc_trader

  • Mood:

Торговая система. Источник Смартлаб.

На смартлабе один из блогеров раскрыл логику своей торговой системы основанной на одном из паттернов. Правда, тестирует он, как я понимаю, в Экселе, поэтому выдается только табличка с результатами количества выигрышных и проигрышных сделок, что явно недостаточно для полноценного анализа. Так как для этого дела у меня есть довольно мощный инструмент и пять минут свободного времени для кодирования, то решил дополнить торговую систему статистикой и визуализациями.

Тестировал на портфеле российских акций из списка Топ-50 Финам. Сделки по правилам системы выглядят примерно так:




Результат, если брать 10% на одну позицию, за 20 лет выглядит так:



График эквити:



Доходность по годам:



Тесты без издержек на комиссионные и проскальзывания.

Код для Wealth-Lab:

[Spoiler (click to open)]
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;
namespace WealthLab.Strategies
{
public class MyStrategy : WealthScript
{
protected override void Execute()
{
DataSeries zRSI = RSI.Series(Close, 10);
DataSeries zVol = SMA.Series(Volume, 10);
DataSeries zATR = ATR.Series(Bars, 10);
for(int bar = 20; bar < Bars.Count; bar++)
{
if (IsLastPositionActive)
{
SellAtStop(bar+1, LastPosition, LastPosition.EntryPrice - zATR[LastPosition.EntryBar], "stop");
SellAtLimit(bar+1, LastPosition, LastPosition.EntryPrice + zATR[LastPosition.EntryBar], "limit");
}
else
{
if (zRSI[bar] > 30)
if ((High[bar] - Close[bar]) < (High[bar] - Low[bar]) / 10)
if (Close[bar] > High[bar-1])
if (Volume[bar] > zVol[bar] * 2)
BuyAtClose(bar);
}
}
}
}
}


Tags: система
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 32 comments