
Эта стратегия представляет собой многоуровневую стратегию торговли роботом BTC. Она выполняет покупку путем поиска минимальной точки входа, а затем устанавливает многоуровневую остановку для выполнения многоуровневой остановки выхода.
Поиск времени входа: при прохождении 0-й оси под показателем CC генерируется сигнал покупки, в этом случае покупается многооборотный ордер.
Настройка стоп-стоп: настройка стоп-стоп-процентов с помощью ввода, преобразование в цену.
Установка многоуровневых остановочных точек: разделение на 4 исходных точек, с помощью ввода установки процентов остановочных точек в каждой исходной точке, преобразование в цену для разделения остановочных точек.
Контроль риска: установка максимального объема позиции, распределение риска путем установки процента выхода для каждой точки выхода.
Эта стратегия имеет следующие преимущества:
Входные сигналы являются более надежными, ищите самые низкие точки покупки и избегайте покупок в высоких точках.
Многоуровневый стоп может блокировать часть прибыли, сохраняя при этом часть прибыли для продолжения работы.
Установка стоп-стоп для контроля риска позволяет контролировать убытки в определенном пределе.
Полевые выступления позволяют распределить риски, чтобы избежать полного убытка.
Вывод можно контролировать до определенной степени.
Также существуют следующие риски:
Показатель CC не позволяет точно определить минимальную точку, что может привести к упущению возможности покупки.
Неправильная установка точки остановки может привести к ненужной остановке.
Неправильное распределение игр может привести к потере прибыли.
В результате землетрясения было сложнее отменить прививку.
Если ситуация резко изменится, это может быть трудно остановить.
Оптимизация может быть осуществлена в следующих аспектах:
Оптимизация входных сигналов, добавление дополнительных показателей или машинного обучения для определения времени покупки.
Оптимизация стратегии по прекращению убытков, чтобы сделать ее более устойчивой и более эффективной.
Оптимизация стратегии выхода из игры, чтобы она могла лучше адаптироваться к колебаниям и тенденциям.
Включение стратегий, таких как trailing stop, позволяет более гибко остановить движение.
Тестирование параметров различных сортов, чтобы найти оптимальную комбинацию параметров
В целом, эта стратегия является стратегией торговли 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)