Арбузы трейдинга DAYTRADING во плоти

С старинных пор, еще как скоро я был ребенком, меня постоянно интересовал вопросец – как люди из безусловно схожих арбузов,    лежащих вповалку на прилавке, подбирают тот единый, который после чего и приобретают? Вопросец, на первый взгляд, риторический, хотя, но, потребитель арбуза практически постоянно может обнаружить тыщу первопричин, изъясняющих его выбор. Пускай данные предпосылки станут абсолютно неочевидны для постороннего наблюдающего, хотя они реально присутствуют.

Наверняка и еще и с советчиками, которые выбираются для «анализа крови». Как может показаться читателю тяжело вычислить, чем все-таки так зацепил меня какой-нибудь программный код, собственно я принял решение вынести его на единое обозрение. Да и в настоящее время первопричина чтобы достичь желаемого результата наличествует и она не 1.

1-ая первопричина прикасается моего предубеждения на предмет скальпирующих стратегий. Так как разве что не математически подтверждено, собственно скальпер – данное на некоторое время. Время жизни стратегии-скальпера ориентируется индивидуальным везением трейдера, применяющего данную стратегию и слишком не часто выше срок в два-три месяца. И все же торгашеский бот, который станет сейчас представлен на трибунал населению, как разов к скальперам и относится, пускай его профит не таковой уж и небольшой – 20 пт. И дело тут еще в том, собственно система была разработана в дальнем 2005-ом году, а обнадеживающие эффекты проявляет и по сей день.

2-ая первопричина дотрагивается очередного моего предубеждения – не применять показания указателей на несформированной свече (никакой бар). Специалист как разов энергично применяет показания никакого бара, хотя делается данное достаточно неординарно, собственно мешает специального предлога для нареканий в изобретении «тестерного грааля».

Чтобы не тащить кота за хвост, перейдем к представлению системы. Заглавие у нее обычное и незатейливое – DayTrading. Вот напрямик в точку! Очевидно чтобы никто не прикинул, собственно трейдеры у монитора дрова рубят. Создатель скальпера – Collector. Как принято говорить, фамилию не показали. Последствий испытания создатель не дал, потому остается лишь додумываться, на какой денежной паре и каком историческом периоде были добыты 1-ые тестерные удачи.

Испытание неординарной версии DayTrading «в наши дни» было сделано на таймфрейме М5 и на исторических этих с 01.01.2009 до 04.12.2009, как обыкновенно на 4 денежных парах-мажорах (рис. 1 4).

Полезный окончательный итог достигнут только по одной денежной паре – EURUSD. Все оставшиеся пары проявили безоговорочную просадку в объеме депо. Ну и то, соответствие незапятанной выгоды и предельной просадки по паре EURUSD оставляет хотеть гораздо лучшего – 4475 баксов против 8475 $, собственно в результате выделяет момент возобновления менее единицы (0.53). И все же потенциал у стратегии виден. Трудности встают по 2 первопричинам: чрезмерно нередкие входы, собственно сокращает процент доходных сделок, и абсолютное неимение значения стоп-приказа.

С установкой стоп-приказа вправду делать нечего, т.к. создатель убедительно рекомендует его не использовать, пускай именно это противоречит всем основам верной торговли. А с частотой входа так же может быть кое-что выдумать.

Осмотрим сигнальную часть стратегии (сантим.. рис. 5).

Специалист применяет эти от 4 указателей: Parabolic SAR, MACD, Stochastic и Momentum. Получение значений указателей и генерация сигнала чрезвычайно комфортно удаленно в отдельную функцию и смотрится так:

void calculateIndicators()
{
macdHistCurrent     = iMACD(NULL, 0, 12, 26, 9, PRICE_OPEN, MODE_MAIN, );
macdHistPrevious    = iMACD(NULL, 0, 12, 26, 9, PRICE_OPEN, MODE_MAIN, 1);
macdSignalCurrent   = iMACD(NULL, 0, 12, 26, 9, PRICE_OPEN, MODE_SIGNAL, );
macdSignalPrevious  = iMACD(NULL, 0, 12, 26, 9, PRICE_OPEN, MODE_SIGNAL, 1);
stochHistCurrent    = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, );
stochHistPrevious   = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, 1);
stochSignalCurrent  = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, );
stochSignalPrevious = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 1);
// Parabolic Sar Current
sarCurrent          = iSAR(NULL, 0, 0.02, 0.2, );
// Parabolic Sar Previuos
sarPrevious         = iSAR(NULL, 0, 0.02, 0.2, 1);
// Momentum Current
momCurrent          = iMomentum(NULL, 0, 14, PRICE_OPEN, );
// Momentum Previous
momPrevious         = iMomentum(NULL, 0, 14, PRICE_OPEN, 1);
// Check for BUY, SELL, and CLOSE signal
isBuying  = (sarCurrent = Аск sarPrevioussarCurrent momCurrent Сто
macdHistCurrent macdSignalCurrent stochHistCurrent 35);
isSelling = (sarCurrent = Бид sarPrevioussarCurrent momCurrent Сто
macdHistCurrent macdSignalCurrent stochHistCurrent 60);
isClosing = false;
}

Для сигнала к покупке нужно будет, чтоб текущее значение Parabolic (на никаком баре) было менее расценки Аск и при всем при этом предыдущее значение SAR было более текущего. Другими словами ценности Parabolic обязаны методично убавляться, или обязана случится смена направления перемещения значений указателя. Затем текущее значение Momentum  наверное менее Сто, а гистограмма MACD обязана присутствовать ниже сигнальной полосы MACD. И для полноты, значение крупнейшей полосы Stochastic наверное менее 35.

Как было упомянуто повыше, творца тяжело упрекнуть в манипулировании тиковыми данными, поскольку ценности по крайней мере 2-ух указателей – MACD и Momentum – применяются постоянные, потому что посчитаны по расценкам открытия. Данное разрешает свободно предусматривать их ценности на никаком баре.

Вернемся к генерации сигналов. Сигнал к реализации поступает, как скоро текущее значение Parabolic выше стоимость Бид, а предыдущее значение SAR как оказалось менее текущего. При всем при этом указатель Momentum присутствует повыше полосы Сто, Stochastic – повыше 60, а гистограмма MACD превосходит собственную сигнальную линию.

Как видим, сигналы вполне противоположны друг дружке и рассчитаны на коррекцию трендового перемещения, коя ориентируется только по 1 указателю – Parabolic SAR. Все другие указатели просто идентифицируют сложившееся перемещение.

В приведенной функции расчета сигнала calculateIndicators оказывается на виду избыточность расчетов указателей. Так, ценности переменных macdHistPrevious, macdSignalPrevious, stochHistPrevious, stochSignalPrevious и momPrevious безусловно ни у кого не употребляются и исключительно занимают избыточное время при испытании. В следствии этого в новейшей версии советчика они станут исключены. Очередная переменная, коя, как оказывается, ничего и ни у кого не решает – IsClosing. Она также станет исключена. Кроме того станет исправлено неправильное пробитие точки Parabolic при генерации сигнала к покупке. В результате сигнальная часть будет смотреться так:

void calculateIndicators()
{
macdHistCurrent = iMACD(NULL, 0, FastMACD, SlowMACD, SignalMACD, PRICE_OPEN,   MODE_MAIN, );
macdSignalCurrent = iMACD(NULL, 0, FastMACD, SlowMACD, SignalMACD, PRICE_OPEN,
MODE_SIGNAL, );
stochHistCurrent = iStochastic(NULL, 0, KStoch, DStoch, SlowingStoch, MODE_SMA, 0, MODE_MAIN, );
// Parabolic Sar Current
sarCurrent = iSAR(NULL, 0, SARStep, SARMax, );
// Parabolic Sar Previuos
sarPrevious = iSAR(NULL, 0, SARStep, SARMax, 1);
// Momentum Current
momCurrent = iMomentum(NULL, 0, MomPeriod, PRICE_OPEN, );
// Check for BUY and SELL signal
isBuying  = (sarCurrent Open[] 0sarPrevioussarCurrent momCurrent 100
macdHistCurrent macdSignalCurrent stochHistCurrent 35);
isSelling = (sarCurrent Open[] 0sarPrevioussarCurrent momCurrent 100
macdHistCurrent macdSigna

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *