Многоуровневая стратегия получения прибыли в процентном отношении

Автор:Доброта, Создано: 2019-09-25 16:24:31, Обновлено: 2023-11-07 20:44:48

img

Резюме

Стэнли Кролл упомянул в своей книге "Кролл по стратегии торговли фьючерсами", что его методы получения прибыли разделены на три части: когда достигается целевая цена, одна треть позиции будет закрыта; другая треть позиции будет закрыта, когда длительный диапазон цен сопротивления и поддержки будет нарушен; последняя треть позиции будет следовать тренду, пока не будет вызвана остановка потери.

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

Зачем нам стоп-лосс и прибыль?

В мире торговли есть старая поговорка: "все знают, как открывать позиции, только профессионалы знают, как закрывать позиции". Как показывают эти слова, как выйти из рынка - это ключевой фактор торговли, потому что, когда вы открываете позиции, вам нужно только судить о том, начинается ли рыночная тенденция. Но как только вы прыгаете на рынок, вам нужно судить о том, меняется ли тенденция или нет, и вы должны контролировать риск в любое время. Я считаю, что многие трейдеры испытали рынок "горных гор", вы прыгаете в поезд и в конечном итоге получаете небольшую прибыль или даже убыток.

Проще говоря, закрытие позиции - это не что иное, как две ситуации: получение прибыли и остановка потери. Например, если вам повезло, цена начинает расти после покупки. В это время вы должны рассмотреть проблему получения прибыли. В противном случае мы можем только заработать деньги на look, не получили прибыли в нужном месте, и в конечном итоге потерять его. Если вам не повезло, цена начнет падать вскоре после покупки. В это время вы должны рассмотреть варианты остановки потери или вы должны рассмотреть варианты остановки потери перед открытием позиции, в противном случае небольшой убыток будет накапливать большой убыток.

С статистической точки зрения, большинство потерь позиций вернется к себестоимости на будущем рынке. Однако, если вы столкнетесь с небольшой вероятностью большой обратной тенденции, вы можете потерять все предыдущие прибыли или даже весь фонд. Поэтому, для наших розничных инвесторов, мы можем получить большую прибыль; мы можем получить небольшую прибыль; мы можем преобразовать небольшие потери, но мы никогда не можем потерять большие деньги. Словом: Стоп-потеря держит вас в живых, и прибыль делает вас жить лучше.

Логика стратегии

Иногда, когда мы интуитивно получаем прибыль, может возникнуть большая волна движения рыночных цен, что мы зарабатываем только небольшую ее часть. Хотя это не неудачная сделка, будет некоторое сожаление от менталитета, поэтому эта стратегия будет использовать многоуровневый метод получения прибыли, то есть, когда плавающая прибыль достигает 5%, первый уровень активного режима получения прибыли включен. Как только 100% выводятся из самой высокой точки плавающей прибыли, выводятся прибыль и закрывается позиция; когда плавающая прибыль достигает 10%, второй уровень активного режима получения прибыли активируется. Как только 50% выводятся из самой высокой точки плавающей прибыли, выводятся прибыль и закрывается позиция; Когда плавающая прибыль достигает 20%, активизируется трехуровневая активная прибыль. Как только 20% выводятся из самой высокой точки, плавающий режим получает прибыль и закрывается.

  • Определите верхнюю рельсу

  • Определить нижнюю рельсу

  • Определите скользящую среднюю

  • Открытая длинная позиция: цена закрытия больше верхней рельсы, а верхняя рельса больше скользящей средней

  • Открытая короткая позиция: цена закрытия ниже, чем цена нижней рельсы, а цена нижней рельсы меньше, чем скользящая средняя

  • Закрытие длинной позиции: цена закрытия ниже, чем нижняя линия, или цена закрытия ниже скользящей средней

  • Закрытие короткой позиции: цена закрытия больше верхней рельсы или цена закрытия больше скользящей средней

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

  • Долгая позиция уровня 2 с прибылью: самая высокая цена после открытия позиции больше или равна цене открытия умноженной на второй уровень начальной прибыли, а самая низкая цена меньше или равна самой высокой цене после открытия позиции минус плавающая прибыль умноженная на значение запуска прибыли второго уровня.

  • Долгая позиция уровня 3 с прибылью: самая высокая цена после открытия позиции больше или равна цене открытия умноженной на третий уровень начальной прибыли, а самая низкая цена меньше или равна самой высокой цене после открытия позиции минус плавающая прибыль умноженная на триггерную стоимость прибыли третьего уровня.

  • Краткая позиция уровня 1 с получением прибыли: самая низкая цена после открытия позиции меньше или равна цене открытия умноженной на первый уровень начальной прибыли, а самая высокая цена больше или равна самой низкой цене после открытия позиции плюс плавающая прибыль умноженная на значение запуска прибыли первого уровня.

  • Краткая позиция уровня 2 с прибылью: самая низкая цена после открытия позиции меньше или равна цене открытия умноженной на второй уровень начальной прибыли, а самая высокая цена больше или равна самой низкой цене после открытия позиции плюс плавающая прибыль умноженная на значение запуска прибыли второго уровня.

  • Приобретение прибыли на короткой позиции уровня 3: самая низкая цена после открытия позиции меньше или равна цене открытия умноженной на третий уровень начальной прибыли, а самая высокая цена больше или равна самой низкой цене после открытия позиции плюс плавающая прибыль умноженная на триггерную стоимость прибыли на третьем уровне.

  • Длинная позиция Stop Loss: цена закрытия меньше или равна цене открытия, умноженной на коэффициент стоп-лосса

  • Краткая позиция Stop Loss: цена закрытия меньше или равна цене открытия, умноженной на коэффициент Stop Loss

Код стратегии

Основываясь на логике вышеуказанной стратегии, мы можем реализовать эту стратегию на платформе FMZ Quant.fmz.com> Вход в систему > Приборная панель > Библиотека стратегии > Новая стратегия > Нажмите на выпадающее меню в правом верхнем углу, чтобы выбрать Мой язык, начать писать стратегию и обратить внимание на комментарии в коде ниже.

Во-первых, параметры, которые необходимо использовать в стратегии: средняя длина линии, диапазон стоп-лосса, параметр получения прибыли и т. Д., Все они определены как внешние параметры для облегчения отладки и оптимизации тестов.

/ / Define parameters
LENGTH := 100; // moving average parameter
STOP_LOSS := 3; // Stop Loss range

// Define the take profit parameter
STARTPER1 := 5; // Level 1 tracking take profit, start from profit reaches 5%
STOPPER1 := 100; // Level 1 tracking take profit, profit retracement 100% triggers it
STARTPER2 := 10; // Level 2 tracking take profit, start from profit reaches 10%
STOPPER2 := 50; // Level 2 tracking take profit, profit retracement 50% trigger it
STARTPER3 := 20; // Level 3 tracking take profit, start from profit reaches 20%
STOPPER3 := 20; // Level 3 tracking take profit, profit retracement 20% trigger

Затем устанавливается диапазон цен на основе цены сегодняшнего и вчерашнего дня, а также колебаний вчерашней цены. Благодаря этому диапазону цен и относительной позиционной связи с скользящей средней, не только сигнал покупки и продажи открытых позиций может быть отслежен хорошо, но и уменьшить количество открытых позиций в период шока и величину вывода, а также.

/ / Define the upper and lower intervals
NN := BARSLAST(DATE <> REF(DATE, 1)) + 1; // current number of cycles
TODAY_OPEN := VALUEWHEN(NN = 1, O); // Opening price of the day
TODAY_HIGH := HHV(H, NN); // The highest price of the day
TODAY_LOW := LLV(L, NN); // lowest price of the day
YESTERDAY_HIGH := REF(TODAY_HIGH, NN); // Yesterday's highest price
YESTERDAY_LOW := REF(TODAY_LOW, NN); // yesterday's lowest price
BAND := YESTERDAY_HIGH - YESTERDAY_LOW; // Yesterday amplitude
UPPERLINE : TODAY_OPEN + BAND; // upper line
LOWERLINE : TODAY_OPEN - BAND; // lower line
MYMA:MA(CLOSE, LENGTH); // Moving average

Затем это логический код для открытия и закрытия позиций. Когда цена закрытия больше верхней рельсы, а верхняя рельса больше скользящей средней, откройте длинную позицию; когда цена закрытия ниже нижней рельсы, а нижняя рельса меньше скользящей средней, откройте короткую позицию; условие закрытия позиции прямо противоположно условию открытия позиции: когда цена закрытия меньше нижней рельсы, или цена закрытия меньше скользящей средней, закрыть длинную позицию; когда цена закрытия больше верхней рельсы, или цена закрытия больше скользящей средней, закрыть короткую позицию.

// open the position
C > UPPERLINE AND UPPERLINE > MYMA, BK; // Open long position
C < LOWERLINE AND LOWERLINE < MYMA, SK; // Open short position

// close the position
C < LOWERLINE OR C < MYMA, SP; // Close long position
C > UPPERLINE OR C > MYMA, BP; // Close short position

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

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

// long position take profit
BKHIGH >= BKPRICE * (1 + 0.01 * STARTPER1) AND LOW <= BKHIGH - (BKHIGH - BKPRICE) * 0.01 * STOPPER1, SP;  // level 1
BKHIGH >= BKPRICE * (1 + 0.01 * STARTPER2) AND LOW <= BKHIGH - (BKHIGH - BKPRICE) * 0.01 * STOPPER2, SP;  // level 2
BKHIGH >= BKPRICE * (1 + 0.01 * STARTPER3) AND LOW <= BKHIGH - (BKHIGH - BKPRICE) * 0.01 * STOPPER3, SP;  // level 3

// short position take profit
SKLOW <= SKPRICE * (1 - 0.01 * STARTPER1) AND HIGH >= SKLOW + (SKPRICE - SKLOW) * 0.01 * STOPPER1, BP;  // level 1
SKLOW <= SKPRICE * (1 - 0.01 * STARTPER2) AND HIGH >= SKLOW + (SKPRICE - SKLOW) * 0.01 * STOPPER2, BP;  // level 2
SKLOW <= SKPRICE * (1 - 0.01 * STARTPER3) AND HIGH >= SKLOW + (SKPRICE - SKLOW) * 0.01 * STOPPER3, BP;  // level 3

// stop loss
C <= BKPRICE * (1 - STOP_LOSS * 0.01), SP;  // long position
C >= SKPRICE * (1 + STOP_LOSS * 0.01), BP;  // short position

Кроме того, мы также установили метод делегирования заказов, а также фильтрацию сигналов, чтобы сделать обработку более полной.

// Set the order commission method
SETSIGPRICETYPE(BK,NEW_ORDER);
SETSIGPRICETYPE(SK,NEW_ORDER);
SETSIGPRICETYPE(BP,NEW_ORDER);
SETSIGPRICETYPE(SP,NEW_ORDER);

// Set the signal filtering method
AUTOFILTER;

Обратная проверка стратегии

Испытательная среда

  • Сорт торговли: индекс арматуры
  • Время: 22 февраля 2015 ~ 18 сентября 2019
  • Цикл: один час
  • Сдвиг: 2 пипа для цены открытия и закрытия позиций
  • Сбор: 2 раза обычного обменного стандарта

img

Отчет о результатах

img

Кривая фондов

img

Стратегия копирования

Нажмите для копирования полного источника стратегии без настройкиhttps://www.fmz.com/strategy/166753


Связанные

Больше