pine-script - 使用 EMA 进行 Pinescript 回测
问题描述
这个脚本有什么问题
这就是我想要的
- 当 5 EMA 下穿 10 EMA 和 10 EMA 下穿 150 EMA 时做空我的头寸
- 当 5 EMA 超过 10 EMA 时覆盖
请建议我错过了什么
谢谢
ema5 = ema(close, 5)
ema10 = ema(close, 10)
ema150 = ema(close, 150)
plot (ema5, title ="EMA5", color = color.green, linewidth = 2)
plot (ema10, title ="EMA10", color = color.red, linewidth = 2)
plot (ema150, title ="EMA150", color = color.black, linewidth = 2)
_5CrossesUnder10 = crossunder(ema5, ema10)
_10CrossesUnder150 = crossunder(ema10, ema150)
ShortCondition = _5CrossesUnder10 and _10CrossesUnder150
_5CrossesAbove10 = crossover(ema5, ema10)
// plot(close)
strategy.entry("Short", strategy.short, 1, when= ShortCondition)
strategy.close("Cover", when= _5CrossesAbove10)```
解决方案
该术语Short
是ID
您的交易。
您必须使用ID
它来关闭它。
您正试图以ID
Cover
从未打开的方式关闭交易。
请参阅strategy.close()函数定义。
这应该有效:
//@version=4
strategy("My Strategy", overlay=true)
ema5 = ema(close, 5)
ema10 = ema(close, 10)
ema150 = ema(close, 150)
plot (ema5, title ="EMA5", color = color.green, linewidth = 2)
plot (ema10, title ="EMA10", color = color.red, linewidth = 2)
plot (ema150, title ="EMA150", color = color.black, linewidth = 2)
_5CrossesUnder10 = crossunder(ema5, ema10)
_10CrossesUnder150 = crossunder(ema10, ema150)
ShortCondition = _5CrossesUnder10 and _10CrossesUnder150
_5CrossesAbove10 = crossover(ema5, ema10)
// plot(close)
strategy.entry("Short", strategy.short, 1, when= ShortCondition)
strategy.close("Short", when= _5CrossesAbove10)
推荐阅读
- php - 如何在本地和远程服务器上使用相同的图像和文件链接
- mongodb - 如何将 JSON 导入 MongoDB Atlas 并从 Realm 函数中设置字段类型?
- javascript - 用javascript计算金字塔中炮弹的数量
- python - 搜索特定字符并过滤
- post - DIVI 全角后滑块延迟启动
- java - 如何从 Java 中的 2D 数组创建黑白图像?
- java - 无效路径参数/查询参数的错误代码应该是什么
- python - 循环运行 Airflow 任务直到完成
- sql - 使用 cte 运行删除命令以删除 oracle 中的重复项给出 ora-00928 错误
- python - 在 macOS 上使用 pyenv 安装 python 版本失败