Эта стратегия использует подход к торговле фиксированной сетью, устанавливая начальную цену и процент между каждым слоем сети. Затем она рассчитывает 10 фиксированных цен на покупку и продажу на основе процента для реализации стратегии торговли сетью с низкой покупкой-высокой продажей.
Стратегия сначала устанавливает стартовую цену и процент расстояния от сети, затем рассчитывает 10 уровней цен на покупку и продажу на основе стартовой цены и процента.
Формула покупки:
b1=sprice-(sprice*p1)
b2=sprice-(sprice*p2)
b3=sprice-(sprice*p3)
…
где p1 ~ p10 - это проценты, рассчитанные слой за слоем на основе процента сетки.
Формула цены продажи:
s1=b1+(стоимость*p1)
s2=b2+(стоимость*p1)
s3=b3+(стоимость*p1)
…
Условие покупки запускается, когда цена закрытия ниже цены покупки:
если (почти < b1)
Strategy.entry ((
Аналогичным образом, условие продажи запускается, когда цена закрытия выше цены продажи:
если (близко>s1)
strategy.exit("b1", когда=(близко>s1))
Таким образом, реализуется стратегия торговли сетями с низкой ценой покупки и высокой ценой продаж.
Стратегия фиксированной сети имеет следующие преимущества:
Достигает авто низкого покупания-высокой продажи без синхронизации рынка, снижает трудности торговли.
Установление правильного расстояния от решетки эффективно контролирует риск и избегает преследования.
Прибыльно, независимо от того, растет ли рынок или падает.
Гибкость корректировки параметров сети для различных рыночных условий.
Увеличение размера позиции путем добавления слоев сетки.
Включение стоп-лосса позволяет избежать больших потерь при экстремальных рыночных событиях.
Стратегия также сопряжена с некоторыми рисками:
Торговые сборы пожирают прибыль на рынке с ограниченным диапазоном.
Неправильные начальные цены и настройки сетки приводят к потерям.
Разрыв цен может привести к убыткам при экстремальных событиях.
Механическая торговля сопряжена с риском размещения ордеров.
Концентрированные события могут усиливать потери.
Решения:
Оптимизировать параметры сети для обеспечения прибыли > сборов.
Бактэст для поиска оптимальной стартовой цены и расстояния от сетки.
Добавьте стоп-лосс для контроля рисков.
Расслабьте цену заказа, чтобы избежать вставки.
Установите контроль риска, чтобы ограничить максимальную потерю.
Стратегия может быть улучшена следующими способами:
Динамически регулируйте расстояние от сетки на основе волатильности.
Вычислить диапазон цен до динамически установленной стартовой цены.
Добавьте модель ML для прогнозирования цены и корректировки сетки.
Оптимизировать стоп-лосс на основе исторических точек стоп-лосса.
Укажите размер позиции на основе уровня прибыли.
Оптимизировать управление позицией для максимального использования капитала.
Улучшить исполнение с использованием TWAP для снижения затрат на воздействие.
Стратегия реализует торговлю фиксированной сетью, устанавливая цены покупки и продажи на основе стартовой цены и процента сетки, достигая автоматической низкой покупки-высокой продажи. Важно управлять рисками путем оптимизации параметров, динамических корректировок и остановки убытков для блокировки прибыли и контроля потерь.
/*backtest start: 2022-11-09 00:00:00 end: 2023-11-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Lionkind //@version=5 strategy("Grid HW", overlay = true, margin_long = 1, margin_short = 1) // Fix 35k price as starting point and 1% as a distance sprice=input(40500,"Starting price") gridpercent=input(1,"Percent") // calculate the % of the 10 layers p1=((gridpercent*1)/100) p2=((gridpercent*2)/100) p3=((gridpercent*3)/100) p4=((gridpercent*4)/100) p5=((gridpercent*5)/100) p6=((gridpercent*6)/100) p7=((gridpercent*7)/100) p8=((gridpercent*8)/100) p9=((gridpercent*9)/100) p10=((gridpercent*10)/100) //set buy prices b1=sprice-(sprice*p1) b2=sprice-(sprice*p2) b3=sprice-(sprice*p3) b4=sprice-(sprice*p4) b5=sprice-(sprice*p5) b6=sprice-(sprice*p6) b7=sprice-(sprice*p7) b8=sprice-(sprice*p8) b9=sprice-(sprice*p9) b10=sprice-(sprice*p10) //set sell prices s1=b1+(sprice*p1) s2=b2+(sprice*p1) s3=b3+(sprice*p1) s4=b4+(sprice*p1) s5=b5+(sprice*p1) s6=b6+(sprice*p1) s7=b7+(sprice*p1) s8=b8+(sprice*p1) s9=b9+(sprice*p1) s10=b10+(sprice*p1) //Long conditions lc1=close<b1 lc2=close<b2 lc3=close<b3 lc4=close<b4 lc5=close<b5 lc6=close<b6 lc7=close<b7 lc8=close<b8 lc9=close<b9 lc10=close<b10 //exit conditions ec1=close>s1 ec2=close>s2 ec3=close>s3 ec4=close>s4 ec5=close>s5 ec6=close>s6 ec7=close>s7 ec8=close>s8 ec9=close>s9 ec10=close>s10 //long orders if (lc1) strategy.entry("b1", strategy.long, when=(lc1)) if (lc2) strategy.entry("b2", strategy.long, when=(lc2)) if (lc3) strategy.entry("b3", strategy.long, when=(lc3)) if (lc4) strategy.entry("b4", strategy.long, when=(lc4)) if (lc5) strategy.entry("b5", strategy.long, when=(lc5)) if (lc6) strategy.entry("b6", strategy.long, when=(lc6)) if (lc7) strategy.entry("b7", strategy.long, when=(lc7)) if (lc8) strategy.entry("b8", strategy.long, when=(lc8)) if (lc9) strategy.entry("b9", strategy.long, when=(lc9)) if (lc10) strategy.entry("b10", strategy.long, when=(lc10)) //exit orders if (ec1) strategy.exit("b1", when=(ec1), limit=1) if (ec2) strategy.exit("b2", when=(ec2), limit=1) if (ec3) strategy.exit("b3", when=(ec3), limit=1) if (ec4) strategy.exit("b4", when=(ec4), limit=1) if (ec5) strategy.exit("b5", when=(ec5), limit=1) if (ec6) strategy.exit("b6", when=(ec6), limit=1) if (ec7) strategy.exit("b7", when=(ec7), limit=1) if (ec8) strategy.exit("b8", when=(ec8), limit=1) if (ec9) strategy.exit("b9", when=(ec9), limit=1) if (ec10) strategy.exit("b10", when=(ec10), limit=1) plot(b1,color=color.green) plot(s1, color=color.red) plot(b2, color=color.purple)