Стратегия бэктестинга Prime Wave


Дата создания: 2024-01-08 11:54:52 Последнее изменение: 2024-01-08 11:54:52
Копировать: 0 Количество просмотров: 846
1
Подписаться
1617
Подписчики

Стратегия бэктестинга Prime Wave

Обзор

Стратегия отсчета поясов в массовых волнах определяет рыночные тенденции, идентифицируя максимальные и минимальные массовые числа вблизи цены и нанося эти две серии массовых чисел в одну полосу. Стратегия была разработана компанией Modular Financial Engineering.

Стратегический принцип

  1. В зависимости от ввода % пропускной способности, пройдите через диапазон положительных и отрицательных колебаний заданной цены, чтобы найти наибольшее и наименьшее положительное число.
  2. Используйте функции highestest и lowest, чтобы получить наивысшую и наименьшую точку в магнитной полосе в ближайшей N-корневой K-линии.
  3. Определить, прорвет ли цена закрытия верхние и нижние точки пояса качественного количества волн, и принять решение о том, будет ли это делать больше или меньше.
  4. Выберите обратный торговый сигнал.

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

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

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

  1. В то же время, поскольку магнитно-частотные полосы не полностью соответствуют движению цен, существует определенная степень задержки.
  2. По мнению экспертов, это может привести к ошибочным сигналам.
  3. Процентная пропускная способность, установленная на конференции, отфильтровывает часть сигнала.

Риски можно избежать путем соответствующей корректировки параметров и в сочетании с другими показателями.

Направление оптимизации

  1. Можно использовать такие показатели, как скользящая средняя, для установки двойных условий, чтобы вызвать сигнал.
  2. Можно изучить использование других случайных чисел, таких как число Фибоначчи и т. д.
  3. Можно внедрить алгоритмы машинного обучения для автоматической оптимизации параметров.

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 27/03/2018
// Determining market trends has become a science even though a high number 
// or people still believe it’s a gambling game. Mathematicians, technicians, 
// brokers and investors have worked together in developing quite several 
// indicators to help them better understand and forecast market movements.
// The Prime Number Bands indicator was developed by Modulus Financial Engineering 
// Inc. This indicator is charted by indentifying the highest and lowest prime number 
// in the neighborhood and plotting the two series as a band.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
PrimeNumberUpBand(price, percent) =>
    res = 0
    res1 = 0
    for j = price to price + (price * percent / 100)
        res1 := j
	    for i = 2 to sqrt(price)
        	res1 := iff(j % i == 0 , 0, j)
            if res1 == 0 
                break
		if res1 > 0 
		    break
    res := iff(res1 == 0, res[1], res1)
    res

PrimeNumberDnBand(price, percent) =>
    res = 0
    res2 = 0
    for j = price to price - (price * percent / 100)
        res2 := j
	    for i = 2 to sqrt(price)
        	res2 := iff(j % i == 0 , 0, j)
            if res2 == 0 
                break
		if res2 > 0 
		    break
    res := iff(res2 == 0, res[1], res2)
    res

strategy(title="Prime Number Bands Backtest", overlay = true)
percent = input(5, minval=0.01, step = 0.01, title="Tolerance Percentage")
Length = input(5, minval=1)
srcUp = input(title="Source Up Band",  defval=high)
srcDn = input(title="Source Down Band",  defval=low)
reverse = input(false, title="Trade reverse")
xPNUB = PrimeNumberUpBand(srcUp, percent)
xPNDB = PrimeNumberDnBand(srcDn, percent)
xHighestPNUB = highest(xPNUB, Length)
xLowestPNUB = lowest(xPNDB, Length)
pos = iff(close > xHighestPNUB[1], 1,
       iff(close < xLowestPNUB[1], -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(xHighestPNUB, color=red, title="PNUp")
plot(xLowestPNUB, color=green, title="PNDn")