繁体   English   中英

strategy.entry 和 strategy.exit 什么时候执行?

[英]When are strategy.entry and strategy.exit executed?

我试图计算回测中虚拟策略完成的交易总数,但我无法计算同时进入和退出的交易。

这是策略:

//@version=5
strategy("Super/MACD/RSI", overlay=false)

import keio/console/2 as c
var log = c.init()

// INDICATORS
[macdline, signalline, histline] = ta.macd(close, 12, 26, 9)
[supertrend, direction] = ta.supertrend(3, 10)
rsi = ta.rsi(close, 14)

// SIGNAL
buysignal = ta.crossover(macdline, signalline) and close > supertrend and rsi < 65 

// SL & TP
var longSL = 0.0
var longTP = 0.0
if buysignal
    longSL := close - close * 0.02
    longTP := close + close * 0.06

// STRATEGY
if buysignal
    strategy.entry(id = "Long", direction=strategy.long)
strategy.exit(id = "Long Exit", from_entry = "Long", limit=longTP, stop=longSL)

// DEBBUG
var bool intrade = false
var bool tradecounted = false
var int entries = 0

if strategy.opentrades != 0
// if strategy.position_size > 0
    intrade := true
else
    intrade := false
    tradecounted := false

if intrade and not tradecounted
    entries += 1
    date = timestamp(year, month, dayofmonth, hour)
    log := c.print(log,"Entry : " + str.tostring(entries) + " : " + str.format("{0,date,yyyy.MM.dd HH:mm}", date))
    tradecounted := true

如果您执行它,您将看到它打印与策略测试器完全相同的条目,除了那些在完全相同的时间进入和结束的条目。 那些不见了。

即使我把线

strategy.exit(id = "Long Exit", from_entry = "Long", limit=longTP, stop=longSL)

在脚本结束时,结果仍然相同。

strategy.*相关代码在回测时是否与代码的rest分开执行?

他们在烛光结束时被处决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM