首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >风险管理PineScript

风险管理PineScript
EN

Stack Overflow用户
提问于 2022-07-22 06:50:16
回答 4查看 82关注 0票数 0

我想用笔录测试一个简单的想法

根据上一次交易的结果,按累计百分比增加或减少我的订单规模

例句:如果上一次交易是一次双赢的交易,那么增加开始订单规模的x%。

例:如果最后一次交易是亏损的交易,减少x%的开始订单规模。

为了简单起见,订单大小从固定开始,比如10,000美元。

假设我连续输了3次,每一次损失交易我都要减少10%的起始订单

我的下一个订单大小应该是我的开始订单大小的70% (10,000美元)。

顺便说一句,金字塔=0

谢谢大家的关注!)

EN

回答 4

Stack Overflow用户

发布于 2022-07-22 07:01:06

要访问最后一个交易PnL,这是一个变量strategy.closedtrades.profit(strategy.closedtrades - 1),不要忘记考虑佣金/费用,从您的PnL中减少佣金/费用

代码语言:javascript
复制
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%
票数 0
EN

Stack Overflow用户

发布于 2022-07-22 08:23:05

我想这段代码遗漏了一些东西。

您必须传播当前的数量大小才能用qty_size1替换:qty_size1。

然后添加:如果barstate.isfirst qty_size = initial_qty_size

票数 0
EN

Stack Overflow用户

发布于 2022-07-25 14:39:07

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73076194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档