我想用笔录测试一个简单的想法
根据上一次交易的结果,按累计百分比增加或减少我的订单规模
例句:如果上一次交易是一次双赢的交易,那么增加开始订单规模的x%。
例:如果最后一次交易是亏损的交易,减少x%的开始订单规模。
为了简单起见,订单大小从固定开始,比如10,000美元。
假设我连续输了3次,每一次损失交易我都要减少10%的起始订单
我的下一个订单大小应该是我的开始订单大小的70% (10,000美元)。
顺便说一句,金字塔=0
谢谢大家的关注!)
发布于 2022-07-22 07:01:06
要访问最后一个交易PnL,这是一个变量strategy.closedtrades.profit(strategy.closedtrades - 1),不要忘记考虑佣金/费用,从您的PnL中减少佣金/费用
var float initial_qty_size = 10000
var float qty_size = initial_qty_size
last_trade_pnL = strategy.closedtrades.profit(strategy.closedtrades - 1) - strategy.closedtrades.commission(strategy.closedtrades - 1)
if last_trade_pnL > 0
qty_size := initial_qty_size * 1.10 // increasing of 10%
else
qty_size := initial_qty_size * 0.9 // decreasing of 10%发布于 2022-07-22 08:23:05
我想这段代码遗漏了一些东西。
您必须传播当前的数量大小才能用qty_size1替换:qty_size1。
然后添加:如果barstate.isfirst qty_size = initial_qty_size
发布于 2022-07-25 14:39:07
var float minSize = 10000
var float maxSize = 100000
var float qty_size = 0.0
var bool calculateNewSize = false
var float last_trade_pnL = 0.0
if barstate.isfirst
qty_size := minSize
else
qty_size := qty_size[1]
if bar_index == strategy.closedtrades.exit_bar_index(strategy.closedtrades - 1)
calculateNewSize := true
last_trade_pnL := strategy.closedtrades.profit(strategy.closedtrades - 1)
if calculateNewSize
if last_trade_pnL > 0
qty_size := math.round(qty_size[1] * 1.10) // increasing of 10%
else
qty_size := math.round(qty_size[1] * 0.9) // decreasing of 10%
if qty_size > maxSize
qty_size := maxSize
if qty_size < minSize
qty_size := minSize
plot(qty_size)https://stackoverflow.com/questions/73076194
复制相似问题