この戦略は,移動平均値,過買い過売り率,変動率の指標を組み合わせ,過買い時のダウンで購入し,過買い時の上昇で販売し,トレンドを追跡します.
RSIとストックが両方が過剰販売/過剰購入ゾーンにあり,AOオシレーターが逆転信号を示しているときにポジションを取ります.特に,RSIとストックが低値 (30以下と20以下) で,AOがマイナスからポジティブに変わるときはロング;RSIとストックが高い値 (70以上と80以上) で,AOがポジティブからマイナスに変わるときはショートします.市場変動に応じて損失/利益レベルを調整するために,ATR値に基づいてストップ・ロスを設定し,利益を取ります.
戦略は主に4つの指標を使用しています.
AOが逆転信号を示し,RSIとストックが両方が過売り/過買いゾーンにある場合,価格は逆転する可能性があります.この時点でポジションを取ります.不安定性に基づいて損失/利益範囲を調整することで罠にはまらないように,ストップ損失を設定し,利益価格を設定するためにATRを使用します.
リスクを減らすために,以下の側面を最適化してください.
戦略に最適化できる側面は以下の通りです.
パラメータの設定を最適化する
誤った信号を避けるため 入口時にフィルター条件を追加します
ストップ・ロスの方法を最適化します
アダプティブ・テイク・プロフィートのような方法で
引き下げを避けるために キーレベル近くで自動取利益を追加します
資金管理を最適化し,リスクに応じてポジションサイズを調整する
パラメータとストップ/利益レベルをテストし最適化する
ニュースや急激な損失を回避するような 極端な出来事を処理します
この戦略は,移動平均値,過買い過売,波動性システムを組み合わせて,低価格で購入し,高価格で販売し,強いトレンドを追求する能力を備えています.しかし,固定パラメータや不適切なストップ損失などのいくつかの問題があります.パラメータ調節,ストップ損失を改善し,フィルターを追加し,より堅牢にするなどのさまざまな側面から最適化することができます.実際の取引では,有効性と収益性を最大化するために,特定のツールと期間に基づいてテストし最適化する必要があります.
/*backtest start: 2023-09-17 00:00:00 end: 2023-10-17 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Buy&Sell Strategy depends on AO+Stoch+RSI+ATR by SerdarYILMAZ", shorttitle="Buy&Sell Strategy") // Created by Serdar YILMAZ // This strategy is just for training, its purpose is just learning code in pine script. // Don't make buy or sell decision with this strategy. // Bu strateji sadece pine script'te kodlamanın nasıl yapildigini ogrenmek icindir. // Bu stratejiye dayanarak, kesinlikle al-sat islemleri yapmayin. //AO fast=input(title="Fast Length",type=input.integer,defval=5) slow=input(title="Slow length",type=input.integer,defval=34) awesome=(sma(hl2,fast)-sma(hl2,slow))*1000 plot(awesome, style=plot.style_histogram, color=(awesome>awesome[1]?color.green:color.red)) //Stoch K=input(title="K",type=input.integer,defval=14) D=input(title="D",type=input.integer,defval=3) smooth=input(title="smooth",type=input.integer,defval=3) k=sma(stoch(close,high,low,K),D) d=sma(k,smooth) hline(80) hline(20) plot(k,color=color.blue) //RSI rsisource=input(title="rsi source",type=input.source,defval=close) rsilength=input(title="rsi length",type=input.integer,defval=10) rsi=rsi(rsisource,rsilength) hline(70,color=color.orange) hline(30,color=color.orange) plot(rsi,color=color.orange) //ATR atrlen=input(title="ATR Length", type=input.integer,defval=14) atrvalue=rma(tr,atrlen) plot(atrvalue*1000,color=color.green) LongCondition=k<20 and rsi<30 and awesome>awesome[1] ShortCondition=k>80 and rsi>70 and awesome<awesome[1] if (LongCondition) stoploss=low-atrvalue takeprofit=close+atrvalue strategy.entry("Long Position", strategy.long) strategy.exit("TP/SL",stop=stoploss,limit=takeprofit) if (ShortCondition) stoploss=high+atrvalue takeprofit=close-atrvalue strategy.entry("Short Position",strategy.short) strategy.exit("TP/SL",stop=stoploss,limit=takeprofit)