等级: 免费版
- 注册:
- 2024-6-4
- 曾用名:
|
//@version=5
indicator("My Script", overlay=true)
// 全局变量声明
n = input(10) // MA均线周期设为10日
stopProfit = input(6) // 止盈设为6跳
stopLoss = input(6) // 止损设为6跳
// 计算10日均线
ma10Value = ta.sma(close, n)
// 获取当前持仓
// 在Pine Script中没有直接获取持仓的函数,因此这部分需要您根据实际情况进行调整
// 以下代码是假设您可以获取持仓信息的示例
currentPosition = securitypositionbyname("")
// 开仓逻辑
if currentPosition == 0
// 多头开仓
if ma10Value < close
if firstTradeAfterLoss
strategy.entry("Buy", strategy.long, 2)
else
strategy.entry("Buy", strategy.long, 1)
// 空头开仓
else if ma10Value > close
if firstTradeAfterLoss
strategy.entry("Short", strategy.short, 2)
else
strategy.entry("Short", strategy.short, 1)
// 平仓及后续处理逻辑
if currentPosition != 0
// 多头平仓
if currentPosition > 0
if close - strategy.position_avg_price > stopProfit
strategy.close("Buy")
if firstTradeAfterLoss
profitCountSinceLoss := profitCountSinceLoss + 1
firstTradeAfterLoss := false
else if strategy.position_avg_price - close > stopLoss
strategy.close("Buy")
firstTradeAfterLoss := true
lossCountSinceLoss := lossCountSinceLoss + 1
// 空头平仓
else if currentPosition < 0
if strategy.position_avg_price - close > stopProfit
strategy.close("Short")
if firstTradeAfterLoss
profitCountSinceLoss := profitCountSinceLoss + 1
firstTradeAfterLoss := false
else if close - strategy.position_avg_price > stopLoss
strategy.close("Short")
firstTradeAfterLoss := true
lossCountSinceLoss := lossCountSinceLoss + 1
// 重置计数
if firstTradeAfterLoss and (profitCountSinceLoss + lossCountSinceLoss >= 2)
profitCountSinceLoss := 0
lossCountSinceLoss := 0
firstTradeAfterLoss := false
|
|