プライムナンバー・バンドのバックテスト戦略は,価格の周りに最も高い,最も低いプライムナンバーを特定し,これらの2つのプライムナンバーシリーズをバンドとしてプロットすることによって市場動向を判断する.この戦略はモジュールズ・ファイナンシャル・エンジニアリング (Modulus Financial Engineering Inc.) によって開発された.
パラメータを適切に調整し,他の指標と組み合わせることでリスクを回避できます.
素数帯のバックテスト戦略は,全体として,実用的な価値を持つ非常に革新的な戦略である.市場ランダム性を捕捉するために素数の特徴を使用し,傾向を特定する際に価格遅延も考慮し,研究に非常に価値があります.次のステップは,信号品質を改善する側面から最適化すること,ランダム数型を拡大すること,自動最適化などで,戦略効果をより顕著にします.
/*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")