自定义指标样例
以下脚本仅作为自动化交易逻辑演示实例,不构成投资建议,请审慎进行投资,注意控制风险
MACD策略
交易逻辑:金叉平空开多,死叉平多开空
// @version=2
// 声明策略配置,定义相关参数,具体支持的参数见下面的策略配置字段声明
tradeConfig(price="market", amount=1)
// 计算指标的值
[dif, dea, macd] = macd(close, 12, 26, 9, 'EMA', 'EMA')
// 计算预警条件的值
golden_cross = crossup(dif, dea)
dead_cross = crossdown(dif, dea)
// 执行交易指令
exitLong(dead_cross)
exitShort(golden_cross)
enterLong(golden_cross)
enterShort(dead_cross)
// 声明策略配置,定义相关参数,具体支持的参数见下面的策略配置字段声明
tradeConfig(price="market", amount=1)
// 计算指标的值
[dif, dea, macd] = macd(close, 12, 26, 9, 'EMA', 'EMA')
// 计算预警条件的值
golden_cross = crossup(dif, dea)
dead_cross = crossdown(dif, dea)
// 执行交易指令
exitLong(dead_cross)
exitShort(golden_cross)
enterLong(golden_cross)
enterShort(dead_cross)
指定时间下单
交易逻辑:到达指定时间执行指定的交易指令,时间和交易指令可以自行修改
// 该指标由 AICOIN研究院 创建,如遇任何使用问题,可加入指标社群咨询
// @version=2
// 将日期转换为能够比较的时间
t1 = parse_time("2023-10-24 12:14:00")
t2 = parse_time("2023-10-24 12:15:00")
t3 = parse_time("2023-10-24 12:16:00")
t4 = parse_time("2023-10-24 12:17:00")
// 定义条件
s1 = time == t1
s2 = time == t2
s3 = time == t3
s4 = time == t4
// 定义预警预警条件,以便在添加预警的窗口中使用
alertcondition(s1, title='t1')
alertcondition(s2, title='t2')
alertcondition(s3, title='t3')
alertcondition(s4, title='t4')
enterLong(s1, price='market', amount=1)
exitLong(s2, price='market', amount=1)
enterShort(s3, price='market', amount=1)
exitShort(s4, price='market', amount=1)
// 绘制收盘价到图表
plot(close, title="收盘价")
// @version=2
// 将日期转换为能够比较的时间
t1 = parse_time("2023-10-24 12:14:00")
t2 = parse_time("2023-10-24 12:15:00")
t3 = parse_time("2023-10-24 12:16:00")
t4 = parse_time("2023-10-24 12:17:00")
// 定义条件
s1 = time == t1
s2 = time == t2
s3 = time == t3
s4 = time == t4
// 定义预警预警条件,以便在添加预警的窗口中使用
alertcondition(s1, title='t1')
alertcondition(s2, title='t2')
alertcondition(s3, title='t3')
alertcondition(s4, title='t4')
enterLong(s1, price='market', amount=1)
exitLong(s2, price='market', amount=1)
enterShort(s3, price='market', amount=1)
exitShort(s4, price='market', amount=1)
// 绘制收盘价到图表
plot(close, title="收盘价")
插针下单
交易逻辑:上插针开空,下插针开多,建议是在BTC一分钟周期运行
// 该指标由 AICOIN研究院 创建,如遇任何使用问题,可加入指标社群咨询
//@version=2
// 振幅的阈值
amplLimit=0.003
// 实体的阈值
solidLimit=0
// 影线的限制
shadowPctLimit=0.002
// 计算上影线
overshadow = high - max(open, close)
// 计算k线实体
solid = abs(close - open)
// 计算下影线
undershadow = min(close, open) - low
// 计算振幅
ampl = (high - low) / close[1]
// 计算上影线涨跌幅
overshadowPct = overshadow / max(open, close)
// 计算下影线涨跌幅
undershadowPct = undershadow / min(close, open)
// 插针判断算法
pinbar = 0
if (ampl > amplLimit) {
if (solid > solidLimit && undershadowPct > shadowPctLimit && overshadowPct > shadowPctLimit) {
pinbar := 4
}
else if (solid >= solidLimit && undershadowPct > shadowPctLimit) {
pinbar := -1
} else if (solid >= solidLimit && overshadowPct > shadowPctLimit) {
pinbar := 1
}
}
// 1 是上插针
// -1 是下插针
// 4 上下插针
up = pinbar == 1
down = pinbar == -1
// 创建对应的预警条件,以便在添加预警的窗口中使用
alertcondition(up, title='上插针', direction="sell")
alertcondition(down, title='下插针', direction="buy")
// 绘制到图表
plot(close, title="收盘")
plotShape(up, title="上插针", shape='arrowDown', color='red', refSeries=close, placement='top', fill=true)
plotShape(down, title="下插针", shape='arrowUp', color='green', refSeries=close, placement='bottom', fill=true)
// 交易配置
// 下插针开多
enterLong(down, price='market', amount=1)
// 上插针开空
enterShort(up, price='market', amount=1)
//@version=2
// 振幅的阈值
amplLimit=0.003
// 实体的阈值
solidLimit=0
// 影线的限制
shadowPctLimit=0.002
// 计算上影线
overshadow = high - max(open, close)
// 计算k线实体
solid = abs(close - open)
// 计算下影线
undershadow = min(close, open) - low
// 计算振幅
ampl = (high - low) / close[1]
// 计算上影线涨跌幅
overshadowPct = overshadow / max(open, close)
// 计算下影线涨跌幅
undershadowPct = undershadow / min(close, open)
// 插针判断算法
pinbar = 0
if (ampl > amplLimit) {
if (solid > solidLimit && undershadowPct > shadowPctLimit && overshadowPct > shadowPctLimit) {
pinbar := 4
}
else if (solid >= solidLimit && undershadowPct > shadowPctLimit) {
pinbar := -1
} else if (solid >= solidLimit && overshadowPct > shadowPctLimit) {
pinbar := 1
}
}
// 1 是上插针
// -1 是下插针
// 4 上下插针
up = pinbar == 1
down = pinbar == -1
// 创建对应的预警条件,以便在添加预警的窗口中使用
alertcondition(up, title='上插针', direction="sell")
alertcondition(down, title='下插针', direction="buy")
// 绘制到图表
plot(close, title="收盘")
plotShape(up, title="上插针", shape='arrowDown', color='red', refSeries=close, placement='top', fill=true)
plotShape(down, title="下插针", shape='arrowUp', color='green', refSeries=close, placement='bottom', fill=true)
// 交易配置
// 下插针开多
enterLong(down, price='market', amount=1)
// 上插针开空
enterShort(up, price='market', amount=1)
关联阅读:
免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。