Блог им. diamante
Тест стратегии из поста http://smart-lab.ru/blog/343965.php
Формализовал стратегию так, как я ее понял.
1. Входа на следующий день, после обновления исторического хая. Тут есть неточности — историю брал с 2005 года. Не факт, что all time high был на этом промежутке.
2. Предыдущее обновление хая было больше 90 дней назад и менее чем 200 дней назад.
3. Примерно 500 ликвидных бумаг с NYSE/NASDAQ/AMEX. Без учета делистинга, без учета комиссий, без учета платы за плечо. Вроде бы без дивидендов (не уверен), дейли дата взята с Google Finance.
4. Стоп в примере — 3%. Тейк — 90%. Можно взять больше стоп, результаты не критично меняются.
5. Вход фиксированным BP на позицию. (взял 1000 на позу)
Код Multicharts.Net
using System;
using System.Drawing;
using System.Linq;
using PowerLanguage.Function;
using ATCenterProxy.interop;
namespace PowerLanguage.Strategy {
public class _INTEST_by_high_daily : SignalObject {
public _INTEST_by_high_daily(object _ctx):base(_ctx){}
private IOrderMarket buy_order;
private IOrderMarket sell_order;
double previous_high;
double previous_high_low_range;
double all_time_high;
protected override void Create()
{
// create variable objects, function objects, order objects etc.
buy_order = OrderCreator.MarketNextBar(new SOrderParameters(Contracts.Default, EOrderAction.Buy));
sell_order = OrderCreator.MarketNextBar(new SOrderParameters(Contracts.Default, EOrderAction.Sell));
}
protected override void StartCalc() {
all_time_high =0;
}
protected override void CalcBar()
{
// strategy logic
if (Bars.High[0]>previous_high && previous_high_low_range<previous_high && previous_high == all_time_high)
{
buy_order.Send();
}
if (StrategyInfo.MarketPosition>0 && Bars.Close[0]>StrategyInfo.AvgEntryPrice*1.9)
sell_order.Send();
previous_high = Bars.High.Highest(200);
previous_high_low_range = Bars.High.Highest(90);
if (Bars.High[0]> all_time_high) all_time_high = Bars.High[0];
}
}
}
Эквити и остальные результаты:




Мои выводы:
В таком виде это, конечно, торговать нельзя. Возможно, другие параметры дали бы лучшее количество прибыльных сделок. Возможно, если брать только grow stocks или акции с высокой бетой или специфические сектора, то результаты будут лучше.
Желающие могут поковырять:)
+++
даже прогу узнаб -мультичартс нэт:)
За такими статьями сюда и хожу.
Было это года три назад. Ща найду...
smart-lab.ru/blog/100449.php
В Datasource нужно выбрать Free Quotes.