Ідея коротко
Nicolas Darvas, професійний танцюрист, заробив у 1950-х $2 млн на акціях і описав метод у двох книгах. Jack Corsellis розбирає другу, «You Can Still Make It in the Market». Вона вийшла приблизно через 15 років після знаменитої першої і докладніше описує правила.
Зростання сильної акції Дарвас бачив як сходи з ящиків. Вершина ящика: максимум, який ціна не перевищує три дні поспіль. Дно: мінімум після падіння від вершини, який не пробивається три дні поспіль. Зона небезпеки починається на 5% нижче дна. Поки папір коливається всередині свого верхнього ящика, його тримають і коливання ігнорують. Пробій вершини верхнього ящика в нові максимуми дає купівлю зі стопом 10%. Коли над входом склався новий ящик, вихід при падінні під його дно в зону небезпеки.
У другій книзі Дарвас змінив правило входу. Перший пробій дедалі частіше одразу повертався в ящик, і він почав чекати другого: пробій, відкат, потім новий максимум вище максимуму першого пробою. Якщо після першого пробою відкату немає і папір просто зростає, він його не переслідує.
З weekly-box-breakout метод ріднить сама коробка, але там тижневі бари, коробка від шести тижнів і початковий стоп у середній третині коробки. З new-high-breakout-ma10-exit спільний вхід у нові максимуми, але вихід там за 10-денною середньою. У Дарваса рівень задає триденна пауза, стоп піднімається ящик за ящиком, а за новими ящиками позиція добирається. У turtle-4w-2w вікна фіксовані: 20 і 10 днів.
Чому це може працювати
Логіка Дарваса в переказі Джека. Єдина вагома причина купити акцію в тому, що її ціна зростає, а компанію з багатообіцяючим майбутнім уважні професіонали не пропустять. Тому він купував дорого, щоб продати дорожче, біля 52-тижневих та історичних максимумів. Ящик це сходинка тренду: поки ціна у верхньому ящику, тренд цілий, а падіння під дно означає зміну характеру руху.
Другий пробій Дарвас пояснював поведінкою професіоналів. Вони знають, що пробій опору слугує сигналом для чартистів, і продають їм папір на цьому пробої. Відкат після першого пробою знімає ці продажі, а новий максимум вище нього показує, що попит залишився.
Джек додає своє спостереження. Краще працюють пробої із щільної консолідації просто під рівнем, з обсягом, що висихає. Ривок від дна ящика одразу до вершини впирається в продавців, які купили нагорі раніше.
Дарвас заробив статок на бичачому ринку, і Джек наголошує, що метод потребує сильного тренду ринку, галузі й самого паперу. Статистики за правилами у відео немає.
Правила
Правила Дарваса позначено як автор. Доповнення Джека позначено як спільнота. Відсутні деталі дописано нами й позначено як Finetiq.
Ящик (автор)
// денні бари, одна акція
// вершина: максимум, який 3 дні поспіль не перевищено
IF High > CandTop THEN CandTop = High, TopCount = 0 // новий максимум скидає лічильник
ELSE TopCount = TopCount + 1
IF TopCount >= 3 AND вершину не підтверджено
BoxTop = CandTop
CandBottom = мінімум Low після бару вершини
// дно: мінімум після вершини, який 3 дні поспіль не пробито
IF Low < CandBottom THEN CandBottom = Low, BottomCount = 0
ELSE BottomCount = BottomCount + 1
IF BottomCount >= 3 THEN BoxBottom = CandBottom // ящик готовий
IF High > BoxTop до готовності дна THEN шукати вершину заново // Finetiq
Danger = BoxBottom * 0.95 // автор: зона небезпеки на 5% нижче дна
// спільнота (Джек, приклад ASYS): дно за закриттями, тіні нижче рівня не враховуються
Верхній ящик і нові максимуми (автор)
TopmostOK = BoxTop >= максимум High за всю історію до ящика // автор: зазвичай лише пробій історичного максимуму
// автор: після дворічного ведмежого ринку чекати історичного максимуму не потрібно
// Finetiq: якщо S&P 500 за останні 2 роки падав від максимуму на 20% і більше,
// достатньо 52-тижневого максимуму
// автор: папір не у своєму верхньому ящику не тримати й не купувати
Вхід A. Перший пробій (автор, рання версія)
IF ящик готовий AND TopmostOK AND MarketPosition = 0
BUY STOP at BoxTop + Offset // автор: ящик 30-35, ордер на 35¼
InitialStop = EntryPrice * 0.90 // автор: стоп 10% на першому пробої
Вхід B. Другий пробій (автор, друга книга)
// перший пробій: High > BoxTop. Не купуємо
P1High = Highest(High) з бару першого пробою
IF Close < BoxTop THEN Reaction = TRUE // Finetiq: відкатом вважаємо закриття назад у ящику
IF Reaction AND MarketPosition = 0
BUY STOP at P1High + Offset // автор: новий максимум вище максимуму першого пробою
IF Close < Danger THEN сетап скасовано // Finetiq
// автор: якщо відкату немає і папір зростає далі, його не переслідувати.
// Finetiq: для такого паперу чекаємо наступного ящика вище
InitialStop = EntryPrice * 0.90
// спільнота (Джек): початковий стоп можна ставити під дном ящика, якщо він ближчий за 10%.
// У його навчальній угоді це близько 7%
Стоп, вихід і добір (автор, деталі Finetiq)
// коли над входом склався новий ящик (автор)
Stop = MAX(Stop, NewBoxBottom * 0.95) // Finetiq: стоп лише піднімається
SELL STOP at MAX(InitialStop, Stop)
// спільнота (Джек, навчальна угода): вихід при пробої дна ящика без 5% запасу
// правило 20% звучить у відео у двох формулюваннях (автор)
A: IF Close < HighestHigh(від входу) * 0.80 THEN EXIT AT NEXT BAR OPEN
// відкат ціни понад 20% від максимуму, приклад ASYS
B: IF MaxOpenProfit > 0 AND OpenProfit < 0.80 * MaxOpenProfit THEN EXIT AT NEXT BAR OPEN
// не віддавати понад 20% прибутку
// Finetiq: вмикати після прибутку від 20%, інакше правило закриє угоду на першому шумі
// добір (автор, приклад Джека)
IF новий ящик готовий вище EntryPrice
BUY STOP at NewBoxTop + Offset // Finetiq: 50% початкового обсягу, не більше 2 доборів
Ордер (спільнота)
// Джек: як він розуміє, Дарвас входив стоп-лімітним ордером
BUY STOP at Trigger LIMIT Trigger * 1.01 // спільнота (Джек): ліміт у межах 1% від півота
// на гепі вище ліміту угоди немає
Відбір паперів (окреме правило)
// автор: спочатку ринок, потім галузь, потім папір, усі у висхідному тренді
// автор: нові зростаючі галузі, великі прибутки або їх очікування, не найбільші компанії
// спільнота (Джек), скрин для сьогоднішнього ринку:
Close > SMA(Close, 200) AND Close > SMA(Close, 50)
AND Close >= 0.80 * Highest(High, 252) // у межах 10-20% від 52-тижневого максимуму
AND мала або середня капіталізація, сильна галузь, зростання прибутку або виручки
// Finetiq: тренд ринку = S&P 500 вище SMA 200
// спільнота (Джек): близько 4 паперів у портфелі
Параметри
| Параметр | Значення | Звідки |
|---|---|---|
| Таймфрейм | денні бари | автор |
| Вершина і дно | 3 дні поспіль без оновлення | автор |
| Зона небезпеки | 5% нижче дна ящика | автор |
| Вимога до максимуму | історичний максимум | автор |
| Виняток після ведмежого ринку | 52-тижневий максимум, якщо S&P 500 падав від 20% за 2 роки | автор (виняток), Finetiq (поріг) |
| Вхід | перший або другий пробій | автор |
| Відкат для другого пробою | закриття назад у ящику | Finetiq |
| Offset | ¼ пункту при ціні 35 | автор |
| Початковий стоп | 10% від входу | автор |
| Стоп після нового ящика | 5% під його дном | автор |
| Правило 20% | відкат ціни від максимуму або віддача прибутку | автор (два формулювання) |
| Поріг для віддачі прибутку | прибуток від 20% | Finetiq |
| Ліміт стоп-лімітного ордера | 1% над рівнем | спільнота (Джек) |
| Добір | на пробої нового ящика | автор |
| Обсяг добору | 50%, не більше 2 разів | Finetiq |
| Скрин | вище SMA 50 і 200, до 20% від 52-тижневого максимуму | спільнота (Джек) |
| Кількість паперів | близько 4 | спільнота (Джек) |
Що перевірити
- Перший пробій проти другого. Головне питання книги. На тих самих ящиках порівняйте середню угоду, частку пробоїв, які за 5 днів повернулися в ящик, і кількість сильних рухів, пропущених через те, що другого пробою не було.
- Визначення відкату. Закриття назад у ящику проти будь-якого відкату на 3-5% від максимуму першого пробою. Від цієї формалізації залежить, скільки угод отримає вхід B.
- Три дні й тіні. 2, 3, 4 і 5 днів для вершини і дна; дно за мінімумами проти дна за закриттями, як у Джека. Якщо результат різко змінюється, ящик нестійкий.
- Стоп. Зона небезпеки 5% під дном проти виходу точно на дні і проти фіксованих 10%. Окремо два формулювання правила 20%.
- Історичний максимум. Історичний проти 52-тижневого і проти відсутності вимоги. Дивіться на роки після ведмежих ринків, коли Дарвас сам знімав вимогу.
- Стоп-ліміт. Частка сигналів, пропущених через геп вище ліміту 1%, і результат цих сигналів за ціною відкриття. Якщо пропускаються найкращі угоди на звітах, ліміт шкодить.
- Концентрація і добір. 4 папери проти 10 і 20 на тих самих сигналах, з добором і без. Дарвас вважає, що менше паперів означає безпечніше. Перевірте розкид річних результатів.
Особливості платформ
TradingView (Pine Script)
- Ящик будується як машина станів на змінних
varз перерахунком на закритті бару. Ордерstrategy.entry("L", strategy.long, stop = boxTop + offset)висить до виконання. Знімайте його черезstrategy.cancel, коли ящик змінився або сетап скасовано. - Якщо в
strategy.entryзадано іstop, іlimit, виходить стоп-лімітний ордер, як у Джека. - Добір дозволяється параметром
pyramidingуstrategy(), за замовчуванням додаткових входів немає. - Історичний максимум залежить від глибини завантаженої історії, вона обмежена тарифом. Коригування на спліти й дивіденди змінює старі максимуми і вершини ящиків.
MultiCharts і TradeStation (EasyLanguage)
Buy next bar at BoxTop + Offset stopживе один бар. Поки ящик актуальний, ордер треба надсилати на кожному барі.- Стоп-лімітний вхід у тесті простіше моделювати умовою: якщо бар відкрився вище рівня на 1% і більше, угоди немає. Так результат не залежить від того, як платформа виконує стоп-ліміт на історії.
- Перевірте у властивостях стратегії дозвіл кількох входів в один бік. Без нього добір на новому ящику не виконається.
- Стопи задавайте ціною:
Sell next bar at Stop stop.SetStopLossрахує в грошах, на акцію або на позицію, і після добору дає інший рівень. - Історичний максимум зберігайте в змінній
ATH = MaxList(ATH, High[1])і завантажуйте всю доступну історію.
MetaTrader 5 (MQL5)
- CFD на акції в брокерів зазвичай лише на великі компанії. Малих і середніх зростаючих паперів, які шукав Дарвас, там мало, а історія коротша за біржову, і історичний максимум за нею ненадійний.
- На неттінговому рахунку добір зливається в одну позицію із середньою ціною. Стоп 10% від першого входу зберігайте у своїй змінній. На хеджинговому рахунку в кожного добору свій тікет і свій стоп.
BuyStopчерезCTradeз експірацією на день перестворюйте після закриття кожного бару. Стоп-лімітний тип ордера в MQL5 є, але його підтримка на CFD на акції залежить від брокера.- Денний бар будується за часом сервера, у частини брокерів у нього потрапляють передторгові котирування. Вершини й дна ящиків тоді відрізняються від біржових.
Де ідея може зламатися
- Правила переказано з книги 1970-х років, статистики немає. Статок Дарвас заробив на бичачому ринку кінця 1950-х, і відома історія успіху сама по собі несе помилку вцілілого.
- Дарвас сам собі суперечить. Правило другого пробою в книзі є, але в прикладі з Teledyne він купує перший пробій зі стопом 10%. Джек сам не впевнений, чи завжди Дарвас чекав другого.
- Числом відкат для другого пробою в книзі не задано. Наша формалізація може відбирати інші угоди, ніж відбирав би Дарвас.
- Правило 20% звучить у відео у двох формулюваннях: відкат ціни від максимуму і віддача накопиченого прибутку. Це різні виходи з різною частотою.
- Відбір паперів у Дарваса якісний: лідери нових галузей, очікування прибутку, сильна група. Технічний скрин відтворює лише частину, а тест на сьогоднішньому списку акцій завищений через помилку вцілілого.
- Ціни в ті роки йшли дробами, відступ у ¼ пункту при ціні 35 це близько 0.7%. На сучасних цінах відступ задавайте у відсотках або тиках.
- Близько чотирьох паперів у портфелі дають великий розкид результату. Відео рекламує MarketSmith і платну спільноту Джека.