Избранное трейдера Uarednikov
Данная статья посвящена альтернативному методу проектирования торговой системы, с использованием случайного входа. Обычно проектирование начинается с сигнала на вход в сделку. Длительное наблюдение за графиком цены приводит трейдера к выявлению некоторой закономерности, которая позволяет извлечь прибыль из рынка. Например, это может быть сигнал от индикатора.
Далее, путем добавления различных блоков и условий добиваются удовлетворительной формы кривой доходности. При этом каждый компонент «обвеса» добавляет свои параметры для оптимизации, что облегчает подгонку под исторические данные.
В итоге получается торговая система с фантастическими показателями по прибыльности и максимальной просадке.
Как правило, после запуска системы в работу, трейдера ждет горькое разочарование. Система не только не показывает планируемую доходность, но очень быстро начинает «сливать» депозит.
… на национальной платформе открытого образования. Запись идет, обучение начинается в сентябре.
Курс математического анализа (первый семестр)
Математический анализ. Теория функций одной переменной
ну и для расширения кругозора или хобби, Основы астрономии
«АД»
«Я увожу к отверженным селеньям,
Я увожу сквозь вековечный стон,
Я увожу к погибшим поколеньям.
Был правдою мой Зодчий вдохновлён:
Я высшей силой, полнотой всезнанья
И первою любовью сотворён.
Древней меня лишь вечные созданья,
И с вечностью пребуду наравне.
Входящие, оставьте упованья»
заключительная фраза текста над вратами ада
«Божественная комедия» Данте Алигьери
Трейдер — возможно, самая циничная профессия в мире по природе своей. Мы слышим в новостях о небывалых пожарах в Канаде и бежим смотреть на мониторы, взрыв в аэропорту и мы снова на адреналиненные к торговым терминалам. От всей души радуемся, если в этот момент у нас шорт по индексу или опционы пут в покупке. Мы никогда не замечаем, как приходим к такому уровню черствости. Возможно, спустя какое то время, когда спадает эйфория и истерия, мы понимаем и осознаем, что для многих это горе?
<TICKER>,<PER>,<DATE>,<TIME>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOL>
SPFB.RTS,1,20080109,103000,230000.0000000,230890.0000000,229510.0000000,230600.0000000,304
SPFB.RTS,1,20080109,103100,230890.0000000,232500.0000000,230890.0000000,232305.0000000,544
SPFB.RTS,1,20080109,103200,232305.0000000,232750.0000000,232300.0000000,232750.0000000,509
В России надо жить долго, говаривал Корней Иванович Чуковский (1882-1969). Я бы перефразировал: на рынке надо жить долго, чтобы дождаться тренда и получить прибыль. В этом могут помочь (ИМХО) низкая норма потери капитала на одну сделку и асимметрия в соотношении средней прибыли и среднего убытка на сделку. «ТС для новичка» старается следовать заветам К.И.Чуковского :)
Тест стратегии из поста 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]; } } }