双均线金叉死叉止盈止损策略是一种趋势跟踪策略。它利用 Stochastic 指标的两个移动平均线 K 和 D 的金叉和死叉来判断买入和卖出时机。同时,它使用止盈止损来控制风险。
该策略的核心指标是 Stochastic 的快线 K 和慢线 D。快线 K 是 Stochastic 的原始值的 3 日简单移动平均线。慢线 D 是快线 K 的 3 日简单移动平均线。当快线上穿慢线时,产生金叉信号,表示多头趋势来临,可以买入。当快线下穿慢线时,产生死叉信号,表示空头趋势来临,可以卖出。
此外,该策略还设置了一个条件,就是只有当 Stochastic 的值在过冷区(低于 20)或过热区(高于 80)时,才产生交易信号。这可以过滤掉一些假信号。
在入市后,该策略使用止盈止损来控制风险。止盈距离 entry price 为 120 个 tick,止损距离 entry price 为 60 个 tick。当价格触及止盈或止损水平时,会退出当前头寸。
风险解决方法:
双均线金叉死叉止盈止损策略,是一种简单实用的趋势跟踪策略。它利用 Stochastic 的双均线系统判断入市时机,并使用止盈止损控制风险。该策略效果显著,容易实现,适合量化交易。通过进一步优化,可以成为稳定盈利的算法交易策略。
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Strategy alerts workaround", overlay=true)
// disclaimer: this content is purely educational, especially please don't pay attention to backtest results on any timeframe/ticker
// Entries logic: based on Stochastic crossover
k = ta.sma(ta.stoch(close, high, low, 14), 3)
d = ta.sma(k, 3)
crossover = ta.crossover(k,d)
crossunder = ta.crossunder(k,d)
if (crossover and k < 20)
strategy.entry("Buy", strategy.long, alert_message="buy")
if (crossunder and k > 80)
strategy.entry("Sell", strategy.short, alert_message="sell")
// StopLoss / TakeProfit exits:
SL = input.int(60, title="StopLoss Distance from entry price (in Ticks)")
TP = input.int(120, title="TakeProfit Distance from entry price (in Ticks)")
strategy.exit("xl", from_entry="Buy", loss=SL, profit=TP, alert_message="closebuy")
strategy.exit("xs", from_entry="Sell", loss=SL, profit=TP, alert_message="closesell")
// logical conditions exits:
if (crossunder and k <= 80)
strategy.close("Buy", alert_message="closebuy")
if (crossover and k >= 20)
strategy.close("Sell", alert_message="closesell")