Многоуровневая стратегия торговли банковскими банками

Автор:Чао Чжан, Дата: 2023-10-18 11:12:39
Тэги:

img

Обзор

Это многоуровневая стратегия торговли роботом BTC. Он входит в длинные позиции, находя самую низкую точку и устанавливает несколько точек получения прибыли для выхода из партии. Он также устанавливает точку остановки потери для контроля риска. Эта стратегия подходит, когда вы быстрее на BTC.

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

  1. Найти сигналы входа: генерировать сигналы покупки, когда индикатор CC пересекает ниже 0, купить длинные позиции в этот момент.

  2. Установите стоп-лосс: Установите процент стоп-лосса через вход, конвертируйте на уровень цены для стоп-лосса.

  3. Установите несколько точек получения прибыли: 4 точки выхода, установите процент получения прибыли для каждой точки через вход, конвертируйте в уровни цен.

  4. Контроль риска: Установка максимального размера позиции, установка процента выхода для каждой точки выхода через вход для рассеяния риска.

Анализ преимуществ

Преимущества этой стратегии:

  1. Надежный сигнал входа, покупая в самом низком месте, избегая покупки в самом высоком.

  2. Многоуровневые прибыли блокируют частичную прибыль, сохраняя прибыль.

  3. Стоп-лосс контролирует риск и ограничивает потери до определенного диапазона.

  4. Выход из партии рассеивает риски, избегая полных потерь сразу.

  5. Снижение можно контролировать до некоторой степени.

Анализ рисков

Риски этой стратегии:

  1. CC-индикатор не может полностью гарантировать самую низкую точку, может упустить возможности покупки.

  2. Неправильное установление стоп-лосса может привести к ненужным стоп-лос.

  3. Неправильные выходы из партии также могут привести к потере прибыли.

  4. Принимать прибыль сложнее на разных рынках.

  5. Может быть трудно остановить убытки при резких перепадах.

Руководство по оптимизации

Потенциальные оптимизации:

  1. Оптимизируйте входные сигналы с помощью большего количества индикаторов или машинного обучения для лучшего синхронизации.

  2. Оптимизировать стратегию стоп-лосса, чтобы сделать ее более эластичной в отношении рыночных движений.

  3. Оптимизировать выход для лучшей адаптации на рыночных рынках.

  4. Добавьте остановки для более гибкой прибыли.

  5. Проверьте различные активы для лучших наборов параметров.

Заключение

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


/*backtest
start: 2023-09-17 00:00:00
end: 2023-10-17 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
args: [["v_input_1",2]]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RafaelZioni


// © theCrypster 2020

//@version=4
// strategy(title = "BTC bot", overlay = true, pyramiding=1,initial_capital = 10000, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.075)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
//INPUTS
higherTF = input("W", type=input.resolution)
pc = security(syminfo.tickerid, higherTF, close[1], lookahead=true)
ph = security(syminfo.tickerid, higherTF, high[1], lookahead=true)
pl = security(syminfo.tickerid, higherTF, low[1], lookahead=true)

PP = 0.0,R1 = 0.0, R2 = 0.0, R3 = 0.0,S1 = 0.0, S2 = 0.0, S3 = 0.0

PP := (ph + pl + pc) / 3
R1 := PP     + (PP   - pl)
S1 := PP     - (ph - PP)
R2 := PP     + (ph - pl)
S2 := PP     - (ph - pl)
factor=input(2)
R3 := ph  + factor * (PP   - pl) 
S3 := pl   - 2 * (ph - PP) 

// 
length=input(21)
//
p = close
vrsi = rsi(p, length)
pp=ema(vrsi,length)
d=(vrsi-pp)*5
cc=(vrsi+d+pp)/2
//
low1=crossover(cc,0)

sell=crossover(close[1],R3) 
//
l = low1
s=sell
if l 
    strategy.entry("buy", strategy.long)
if s 
    strategy.entry("sell", strategy.short)
per(pcnt) =>
    strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss=input(title=" stop loss", defval=15, minval=0.01)
los = per(stoploss)
q1=input(title=" qty_percent1", defval=25, minval=1)
q2=input(title=" qty_percent2", defval=25, minval=1)
q3=input(title=" qty_percent3", defval=25, minval=1)
tp1=input(title=" Take profit1", defval=3, minval=0.01)
tp2=input(title=" Take profit2", defval=5, minval=0.01)
tp3=input(title=" Take profit3", defval=7, minval=0.01)
tp4=input(title=" Take profit4", defval=10, minval=0.01)
strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los)
strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los)
strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los)
strategy.exit("x4", profit = per(tp4), loss = los)


Больше