Часть 1. Теория
А имеем вот что:)
И это не считая 3-5 челленджей, которые я, вначале пути, не сохранял и не анализировал, два полученных счета — один слит, другой недавно получен (под это дело и решил начепятать эту статью). Считайте и думайте сами во что вам может вылиться занятие трейдингом на начальном этапе. Все челленджи стандартные NYSE по 60$. Берем по максимуму: 23*60=1380 или около 83000 рублей (при средней цене бакса равной 60). Впринципе это 1 маленькое депо для начала торговли на Московской бирже, либо минимальное депо для пробы себя на Америке при торговле через СНГшные пропы. А сколько я читаю тем и статей про один, два и более слитых депозитов. Из этого делаю вывод, что я отделался малой кровью. Хотя дистанция все расставит на свои места:)
Анализируя свои неудачи я понял, что основной причиной сливов было отсутствие системы и нарушение рисков. Особенно это было видно в самом начале, когда я бегал от одной системы к другой, перепробовав кучу индикаторов, паттернов и уже готовых систем. В результате всего этого симбиоза получилась моя система.
Часто смотрю сделки и результаты прошлых челленджей и на лице всегда появляется улыбка. Столько простых и порой банальных ошибок. И сейчас они тоже бывают, но уже не в таком количестве.
Были околонулевые результаты:
Первый полученный счет:
Второй полученный счет:
Бывало и такое, когда все решали считанные центы.
Например вот: отчетная акция MXIM.
В тот роковой день я переторговал и хотел срочно отбить все и сразу. Поэтому и нашел бумагу с линейкой в 50 центов, чего обычно я не делаю. И ведь видел полупустой стакан и понимал, что проскальзывания точно было не избежать. И даже поставил стоп с запасом. Но это не спасло и результат был -51.50$ за день, превысив дневной лимит потерь на 1.5$.
А бывал и такой треш:
Как можете заметить в обоих победных челленджах основную прибыль дал «один хороший трейд». И это меня научило не сдаваться даже когда на начало третей недели торгов у меня нет и 200$. Все может случиться и в последний день турнира, когда вы прокатитесь на супер тренде и сделайте нужную сумму.
Вот как было в первом челлендже. Первая сделка:
Торговля отчетной акции TRIP-отбой от фигуры и всплеск объема дали сигнал на вход. Закрыл в обед, так как рынок начал падать. На данный момент в кармане 160$+дневной лимит в 50$. И тут я обратил свое внимание на UVXY.
Закрепление выше фигуры, слабость рынка и хорошая денежная подушка послужила сигналом на вход. Первый заход маркетом на откате выше фигуры, второй также на откате и третий стоповым ордером в пробой. Один хороший трейд. Итог — выгранный турнир. Далее следовало аккуратно набрать нужные 10 плюсовых дней, что и было сделано.
Во втором была такая ситуация (скрин из авроры не сохранил, только из ТОСа):
AAPL. Gap Up (стрелка на дневном)+Сильный рынок. Зашел лимитником на откате(указал стрелкой на минутке). Ожидал мощного трендового дня и понимал, что это мой шанс сделать один хороший трейд. Поставил стоп в 40 центов и отошел от терминала, чтобы не гипнотезировать цену. Моя любимая ситуация GAP AND GO:)
Что еще понял для себя:
-всегда нужно стараться развивать сделку, т.е добавляться, но при этом заходить так словно это новая позиция, чтобы не убить прибыль от первой.
-никогда не торгуй маленькими позами по 50 акций и упаси господи если по 25. Этой фигней я страдал в самом начале, думая, что если я буду торговать акции с ценой по 150-200 долларов и АТР-ом 2-4 (FB, NVDA, NFLX, BABA и тд) все будет в ажуре. Ага. Как бы не так… Теперь стараюсь брать акции от 25 до 100, чтобы минимум заходить по 2 лота (200 акций-как раз для BP в 20000$). Куда лучше купить GM (цена около 37 долларов) на 4 лота и взять свои 20 центов со стопом до 10 центов, что даст нам 80$ прибыли за день(возможный убыток 40 долларов). И это притом, что мы выйдем по цели лимитником. А ведь можно выходить частями, трейлить стоп. При хорошем трендовом дне это может превратиться в «один хороший трейд». Чем ждать трейд, зайдя одним лотом и высиживая 60-80 центов движения. Да и так можно, но мне ближе получать более частую прибыль-уж такова моя психология.
-пробовать надо все: индикаторы, стили торговли, паттерны, разный манименеджмент, риски. Если вам говорят, что индикаторы не работают, то лучше согласитесь, они и правда не работают в классическом их понимании, но просмотрев 100, 1000 и 10000 ситуаций вы будете видеть разные паттерны в которых именно эти индикаторы и будут вам давать нужное преимущество.
Часть 2. Практика.
Коротко по системе: в основном торговля пробоев. Делаю упор на лонг позициях (не знаю почему так, скорее всего тут большое влияние имеет мой склад ума). Когда на рынке «красные дни» больше смотрю на ETF-ы (также всем рекомендую хоть чуток ознакомиться с ними и взять себе на вооружение)-в моем случае это UVXY и VXX и также торгую от лонга. Инфу брал здесь
pennystock.ru/posts?search=UVXy
Также торгую отбои от границ Боллинджера(кстати его нет в Авроре-хотелось бы его увидеть в дальнейшем, ведь это совсем стандартный индикатор и с ним не должно возникнуть никаких проблем при добавлении как это например было с VWAP) на пятиминутке, при этом используя индикатор пробоя. Конечно же смотрю рынок, дневку акции и стараюсь брать по тренду, хотя бывает, что могу взять и против. Тут все зависит от конкретной ситуации. Поэтому тут нет смысла все рассказывать досконально. Практика, практика и еще раз практика.
Выкладываю на всеобщее обозрение все чем пользуюсь на данный момент и что мне помогло пройти турниры. Может и другим поможет.
Платформа Thinkorswim. Все индикаторы и фильтры (кроме ATR и Vol%) были сделаны под заказ у программиста. Для вас, братушки, ничего не жалко.
Так выглядит рабочий стол в ТОСе (В Авроре смотрите скрины выше):
Цифрами обозначены фильтры: 1-тикер, 2-последняя цена, 3-изменение за день, 4-объем.
5-Объем в процентах относительно вчерашнего дня. Сортирую все тикеры по нему и получаю сверху самые горячие стаки.
plot vol = (volume/volume[1])*100;
6-ATR
input price = FundamentalType.close;
input agg = AggregationPeriod.DAY;
input length = 65;
plot SMA = round((Average(high(period = agg)[0], length )-Average(low(period = agg)[0], length )),2);
SMA.SetDefaultColor(GetColor(1));
7-Фильтр Боллинджер. Показывает, когда свеча касается верхней границы Боллинджера и при этом она закрывается красной. Сигнал по закрытию свечи. В вотчлисте появляется надпись DN подсвеченная красным-сигнал шорт. Когда свеча касается нижней границы Боллинджера и при этом она закрывается зеленой. Сигнал по закрытию свечи. В вотчлисте появляется надпись UP подсвеченная зеленым-сигнал лонг.
input price = close;
input displace = 0;
input length = 20;
input Num_Dev_Dn = -2.0;
input Num_Dev_up = 2.0;
input averageType = AverageType.SIMPLE;
def bollingerLowerBand = reference BollingerBands(price, displace, length, Num_Dev_Dn, Num_Dev_up, averageType).LowerBand;
def bollingerUpperBand = reference BollingerBands(price, displace, length, Num_Dev_Dn, Num_Dev_up, averageType).UpperBand;
def isBarUP = if close > open then 1 else 0;
def isBarDN = if close < open then 1 else 0;
def isBarHighBollinger = if high >= bollingerUpperBand then 1 else 0;
def isBarLowBollinger = if low <= bollingerLowerBand then 1 else 0;
def sDN = isBarHighBollinger and isBarDN;
def sUP = isBarLowBollinger and isBarUP;
AddLabel(yes, if sUP[1] then «UP» else if sDN[1] then «DN» else «z»);
AssignBackgroundColor(if sUP[1] then Color.GREEN else if sDN[1] then Color.RED else Color.CURRENT);
Индикатор пробоя-у меня стоит параметр 15.
declare upper;
input markPeriod = 5;
def _highInPeriod = Highest( high, markPeriod );
def _lowInPeriod = Lowest( low, markPeriod );
#============================[ Marked High ]===================================
def marketHigh = if _highInPeriod > _highInPeriod[markPeriod] then _highInPeriod else _highInPeriod[markPeriod];
def _markedHigh = high == marketHigh;
rec _lastMarkedHigh = CompoundValue( 1, if IsNaN( _markedHigh ) then _lastMarkedHigh[1] else if _markedHigh then high else _lastMarkedHigh[1], high );
#=============================[ Marked Low ]===================================
def marketLow = if _lowInPeriod < _lowInPeriod[markPeriod] then _lowInPeriod else _lowInPeriod[markPeriod];
def _markedLow = low == marketLow;
rec _lastMarkedLow = CompoundValue( 1, if IsNaN( _markedLow ) then _lastMarkedLow[1] else if _markedLow then low else _lastMarkedLow[1], low );
#==================================[ Plots ]===================================
def Resistance = _lastMarkedHigh;
def Support = _lastMarkedLow;
#plot condition = if (resistance > close, 1, 0);
plot BreakAboveResistance = if high > Resistance[1] then Resistance[1] else Double.NaN;
BreakAboveResistance.SetPaintingStrategy( PaintingStrategy.POINTS );
BreakAboveResistance.AssignValueColor( Color.YELLOW );
BreakAboveResistance.SetLineWeight(5);
plot ResistanceToPlot = Resistance;
ResistanceToPlot.SetPaintingStrategy( PaintingStrategy.POINTS );
ResistanceToPlot.AssignValueColor( Color.GRAY );
ResistanceToPlot.SetLineWeight(1);
plot upperChannel = _highInPeriod;
plot lowerChannel = _lowInPeriod;
upperChannel.AssignValueColor( Color.DARK_GRAY );
lowerChannel.AssignValueColor( Color.DARK_GRAY );
plot SupportToPlot = Support;
SupportToPlot.SetPaintingStrategy( PaintingStrategy.POINTS );
SupportToPlot.AssignValueColor( Color.RED );
SupportToPlot.SetLineWeight(1);
В параметрах оставляем галочки только в подпунктах 1 и 2. У меня только в первом стоят-только для лонга. В остальных убираем.
Вот примеры за вчера для лонга:
для шорта:
Как использовать, сами разберетесь. Единственное скажу, что сейчас часто делаются ложные пробои и идет сильный откат, чтобы вытрусить лишних пассажиров. Поэтому ждите ложный, а потом заходите.
Индикатор временных зон.
Навеяно этими статьями
utmagazine.ru/posts/10789-luchshee-vremya-dlya-torgovli-vnutri-dnya
ru.tradingview.com/script/Zjt3F9cC-Custom-Indicator-No-Trade-Zone-Warning-Back-Ground-Highlights/
Наглядно показывает, когда можно торговать, а когда нет. Посмотрите пример выше с акцией ESRX. Конечно же можно и без него обойтись, но мне больше нравиться с ним. Настройки совсем уж простые, поэтому описывать не буду.
#hint type: Тип отображения временных зон на графике
#hint t1s1: Время начала <b>Первого</b> периода — <b>Первой</b> временной зоны
#hint t1e1: Время окончания <b>Первого</b> периода — <b>Первой</b> временной зоны
#hint t1s2: Время начала <b>Второго</b> периода — <b>Первой</b> временной зоны
#hint t1e2: Время окончания <b>Второго</b> периода — <b>Первой</b> временной зоны
#hint t1s3: Время начала <b>Третьего</b> периода — <b>Первой</b> временной зоны
#hint t1e3: Время окончания <b>Третьего</b> периода — <b>Первой</b> временной зоны
#hint t2s1: Время начала <b>Первого</b> периода — <b>Второй</b> временной зоны
#hint t2e1: Время окончания <b>Первого</b> периода — <b>Второй</b> временной зоны
#hint t2s2: Время начала <b>Второго</b> периода — <b>Второй</b> временной зоны
#hint t2e2: Время окончания <b>Второго</b> периода — <b>Второй</b> временной зоны
#hint t2s3: Время начала <b>Третьего</b> периода — <b>Второй</b> временной зоны
#hint t2e3: Время окончания <b>Третьего</b> периода — <b>Второй</b> временной зоны
#hint t3s1: Время начала <b>Первого</b> периода — <b>Третьей</b> временной зоны
#hint t3e1: Время окончания <b>Первого</b> периода — <b>Третьей</b> временной зоны
#hint t3s2: Время начала <b>Второго</b> периода — <b>Третьей</b> временной зоны
#hint t3e2: Время окончания <b>Второго</b> периода — <b>Третьей</b> временной зоны
#hint t3s3: Время начала <b>Третьего</b> периода — <b>Третьей</b> временной зоны
#hint t3e3: Время окончания <b>Третьего</b> периода — <b>Третьей</b> временной зоны
#hint t4s1: Время начала <b>Первого</b> периода — <b>Четвертой</b> временной зоны
#hint t4e1: Время окончания <b>Первого</b> периода — <b>Четвертой</b> временной зоны
#hint t4s2: Время начала <b>Второго</b> периода — <b>Четвертой</b> временной зоны
#hint t4e2: Время окончания <b>Второго</b> периода — <b>Четвертой</b> временной зоны
#hint t4s3: Время начала <b>Третьего</b> периода — <b>Четвертой</b> временной зоны
#hint t4e3: Время окончания <b>Третьего</b> периода — <b>Четвертой</b> временной зоны
#hint t5s1: Время начала <b>Первого</b> периода — <b>Пятой</b> временной зоны
#hint t5e1: Время окончания <b>Первого</b> периода — <b>Пятой</b> временной зоны
#hint t5s2: Время начала <b>Второго</b> периода — <b>Пятой</b> временной зоны
#hint t5e2: Время окончания <b>Второго</b> периода — <b>Пятой</b> временной зоны
#hint t5s3: Время начала <b>Третьего</b> периода — <b>Пятой</b> временной зоны
#hint t5e3: Время окончания <b>Третьего</b> периода — <b>Пятой</b> временной зоны
input type = {default «Cloud», «Cloud 2», «Bars»};
input zs1 = "- Time Zone 1 -";
input t1s1 = 930;
input t1e1 = 955;
input t1s2 = 1300;
input t1e2 = 1325;
input t1s3 = 0;
input t1e3 = 0;
input zs2 = "- Time Zone 2 -";
input t2s1 = 1200;
input t2e1 = 1255;
input t2s2 = 0;
input t2e2 = 0;
input t2s3 = 0;
input t2e3 = 0;
input zs3 = "- Time Zone 3 -";
input t3s1 = 1530;
input t3e1 = 1550;
input t3s2 = 0;
input t3e2 = 0;
input t3s3 = 0;
input t3e3 = 0;
input zs4 = "- Time Zone 4 -";
input t4s1 = 1555;
input t4e1 = 1600;
input t4s2 = 0;
input t4e2 = 0;
input t4s3 = 0;
input t4e3 = 0;
input zs5 = "- Time Zone 5 -";
input t5s1 = 0;
input t5e1 = 0;
input t5s2 = 0;
input t5e2 = 0;
input t5s3 = 0;
input t5e3 = 0;
def z11 = SecondsFromTime(t1s1) >= 0 and SecondsFromTime(t1e1) <= 0;
def z12 = SecondsFromTime(t1s2) >= 0 and SecondsFromTime(t1e2) <= 0;
def z13 = SecondsFromTime(t1s3) >= 0 and SecondsFromTime(t1e3) <= 0;
def z21 = SecondsFromTime(t2s1) >= 0 and SecondsFromTime(t2e1) <= 0;
def z22 = SecondsFromTime(t2s2) >= 0 and SecondsFromTime(t2e2) <= 0;
def z23 = SecondsFromTime(t2s3) >= 0 and SecondsFromTime(t2e3) <= 0;
def z31 = SecondsFromTime(t3s1) >= 0 and SecondsFromTime(t3e1) <= 0;
def z32 = SecondsFromTime(t3s2) >= 0 and SecondsFromTime(t3e2) <= 0;
def z33 = SecondsFromTime(t3s3) >= 0 and SecondsFromTime(t3e3) <= 0;
def z41 = SecondsFromTime(t4s1) >= 0 and SecondsFromTime(t4e1) <= 0;
def z42 = SecondsFromTime(t4s2) >= 0 and SecondsFromTime(t4e2) <= 0;
def z43 = SecondsFromTime(t4s3) >= 0 and SecondsFromTime(t4e3) <= 0;
def z51 = SecondsFromTime(t5s1) >= 0 and SecondsFromTime(t5e1) <= 0;
def z52 = SecondsFromTime(t5s2) >= 0 and SecondsFromTime(t5e2) <= 0;
def z53 = SecondsFromTime(t5s3) >= 0 and SecondsFromTime(t5e3) <= 0;
DefineGlobalColor(«Time Zone 1», Color.RED);
DefineGlobalColor(«Time Zone 2», Color.YELLOW);
DefineGlobalColor(«Time Zone 3», Color.ORANGE);
DefineGlobalColor(«Time Zone 4», Color.CYAN);
DefineGlobalColor(«Time Zone 5», Color.GREEN);
def max;
def min;
switch (type)
{
case «Cloud»:
max = HighestAll(high);
min = LowestAll(low);
case «Cloud 2»:
max = high(period = AggregationPeriod.DAY);
min = low(period = AggregationPeriod.DAY);
case «Bars»:
max = -1;
min = -1;
}
AddCloud(if z11 and max > 0 then max else Double.NaN, if z11 and min > 0 then min else Double.NaN, GlobalColor(«Time Zone 1»));
AddCloud(if z12 and max > 0 then max else Double.NaN, if z12 and min > 0 then min else Double.NaN, GlobalColor(«Time Zone 1»));
AddCloud(if z13 and max > 0 then max else Double.NaN, if z13 and min > 0 then min else Double.NaN, GlobalColor(«Time Zone 1»));
AddCloud(if z21 and max > 0 then max else Double.NaN, if z21 and min > 0 then min else Double.NaN, GlobalColor(«Time Zone 2»));
AddCloud(if z22 and max > 0 then max else Double.NaN, if z22 and min > 0 then min else Double.NaN, GlobalColor(«Time Zone 2»));
AddCloud(if z23 and max > 0 then max else Double.NaN, if z23 and min > 0 then min else Double.NaN, GlobalColor(«Time Zone 2»));
AddCloud(if z31 and max > 0 then max else Double.NaN, if z31 and min > 0 then min else Double.NaN, GlobalColor(«Time Zone 3»));
AddCloud(if z32 and max > 0 then max else Double.NaN, if z32 and min > 0 then min else Double.NaN, GlobalColor(«Time Zone 3»));
AddCloud(if z33 and max > 0 then max else Double.NaN, if z33 and min > 0 then min else Double.NaN, GlobalColor(«Time Zone 3»));
AddCloud(if z41 and max > 0 then max else Double.NaN, if z41 and min > 0 then min else Double.NaN, GlobalColor(«Time Zone 4»));
AddCloud(if z42 and max > 0 then max else Double.NaN, if z42 and min > 0 then min else Double.NaN, GlobalColor(«Time Zone 4»));
AddCloud(if z43 and max > 0 then max else Double.NaN, if z43 and min > 0 then min else Double.NaN, GlobalColor(«Time Zone 4»));
AddCloud(if z51 and max > 0 then max else Double.NaN, if z51 and min > 0 then min else Double.NaN, GlobalColor(«Time Zone 5»));
AddCloud(if z52 and max > 0 then max else Double.NaN, if z52 and min > 0 then min else Double.NaN, GlobalColor(«Time Zone 5»));
AddCloud(if z53 and max > 0 then max else Double.NaN, if z53 and min > 0 then min else Double.NaN, GlobalColor(«Time Zone 5»));
AssignPriceColor(if (z11 or z12 or z13) and type == type.Bars then GlobalColor(«Time Zone 1») else if (z21 or z22 or z23) and type == type.Bars then GlobalColor(«Time Zone 2») else if (z31 or z32 or z33) and type == type.Bars then GlobalColor(«Time Zone 3») else if (z41 or z42 or z43) and type == type.Bars then GlobalColor(«Time Zone 4») else if (z51 or z52 or z53) and type == type.Bars then GlobalColor(«Time Zone 5») else Color.CURRENT);
declare hide_on_daily;
Комментируйте, ставьте лайки, делитесь с друзьями. Спасибо за внимание и удачи.
PS Немного рекламы. Если кому нужна помощь по ТОСу, индикаторам, фильтрам вот этот человек к которому я обращался(он не является моим знакомым или другом, просто решил сегодня всем немного помочь и поделиться своим добром):
Почта pawelp705@gmail.com
А как это?
Поймите одну простую вещь, у вас нет шансов выигрывать долгосрочно с такими поставленными условиями, конечно вам может повезти на 20-й раз, но на 21-й раз все для вас закончиться.
Организаторы об этом в курсе, на этом и зарабатывают.
на один мой выигрыш 17 проигравших. Мне в управление дадут 20000$ BP с рисками 300$-те эту сумму потеряют ЮТ если я сольюсь. Но за этот челлендж они получили 1080$-300$=780$ у них чистая прибыль. Так и живем...
Ну почему же. Челендж челенджу, — рознь. есть непонятно платные. Есть бесплатные. А есть, бесплатные, которые платят.
однозначно +
Надеюсь я понятно объяснил.
Просто откройте счёт у брокера и представьте что у Вас челендж длиной в пару-тройку лет и всё сразу встанет на свои места. :)
Сразу разберётесь на каких таймфреймах торговать, для того чтобы дойти до финиша хотя бы без потерь.
Не думаю, что мои недосоветы чем-то помогут сейчас, сам бы в своё время не воспринял подобную информацию, но мозг сложная штука, рано или поздно он тебе что-то подобное начнёт компилировать сам, тогда будет проще это всё воспринимать.
у мя счас счет на омерике 70к баксов… имхо крайне мало… где то 150-200к баксов номально для торговли…