
この戦略は,平均線指数,超買い超売り指数,および波動率指数を組み合わせて,超落下反転の場合には,低価格で買い,超買い反転の場合には高価格で売り,トレンド追跡を実現します.
RSIとStochが同時に超売り領域にあり,AO振動器が反転信号を発したときにポジションを確立する.具体的には,RSIとStochが低値 (以下30と20) で,AOはマイナスから正しければ高値 (以下70と80) で,AOはマイナスから正しければ空きである.ストップとストップはATR指標の値に基づいて設定され,市場の波動に応じてストップの位置を調整することができます.
この戦略は主に4つの指標を用いています.
AOが反転信号を発し,RSIとStochが同時に超売り領域にある場合,価格が反転する可能性を示し,ポジションの構築に介入することができる.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)