主页 > imtoken冷钱包 > 讨论胜率、盈亏比、收益率和杠杆之间的关系

讨论胜率、盈亏比、收益率和杠杆之间的关系

imtoken冷钱包 2023-01-17 12:32:38

文章介绍

胜率更重要还是盈亏比更重要?

是高胜率赚小钱好还是低胜率赚大钱好?

做一个炙手可热的目标好还是一个温和的目标好?

使用了多少杠杆?使用过多的杠杆会让你变得富有还是加速破产?

赢率、盈亏比、收益率、波动率、杠杆,这些概念对交易结果至关重要,因此本文讨论这些概念。个人安排,如有错误请指正。

在整体思路上,会对涉及的概念做一些约定,推导出公式,然后根据公式分析各个因素的作用和关系,并做几个程序实验。稍后,我们根据询价的结果,谈谈如何改善交易结果。

概念约定

由于对一般规律的研究,就像在物理学中一样,假设物体都是标准物体。都是一样的。

PS:缩写的定义可能不太标准~

总资产:F.

总回报率:E,收益,F=FE。

胜率:W,胜。

十倍杠杆亏了要不要还

单次收益率:Y.实际反映交易结果的幅度,无论你是大盈大亏还是小盈小亏。

Loss ratio:R,亏损与盈利的比率。我使用损益比而不是损益比,因为我认为它更容易理解……损益比 R 和收益率 Y 相乘得到 -RY 在亏损。因为事实上,在一个动荡的市场中,必然会有更多的盈亏,所以盈亏的关系更接近于比例关系。

杠杆数量:L,水平。

交易总数:N.

盈亏顺序无关:这不是约定俗成的,是基本的理解。最终的交易结果仅取决于每笔交易的回报率,而与这些交易的顺序无关。

杠杆和实际收益率:杠杆实际上只影响实际收益率。 2倍5%的收益率和1倍10%的收益率其实是一样的。所以其实我们不需要单独考虑杠杆因素,它的作用可以体现在收益率上。

各因素分析

1// &即 (1+Y)^{WN}*(1-RY)^ {(1-W)N}>1// & 即 [(1+Y)^{W}*(1 -RY)^{(1-W)}]^{N}>1// & 因为N是正整数,所以等价于(1+Y)^{W}*(1-RY)^{ 1-W}>1// & 因为Y>0,所以(1+Y) > 1,(1+Y)^{W}也必须大于1,也就是总收益的利润部分 // &R>0, Y>0, 所以 (1-RY) 小于 1, 并且索引 1-W 大于 0// &so (1-RY)^{1-W} 也必须小于 1,这是总收益的损失部分 // /end{aligned}' alt='\begin{aligned} & 获利订单是 WN\\ & 获利订单总利润是 (1+Y)^{WN} \\ & 亏损次数为 (1-W)N\\ & 亏损总收益为 (1-RY)^{(1-W)N}\\ & 因此最终总收益 E=( 1+Y)^{WN}*(1-RY)^{(1-W)N}\\& 要想交易赢,首先不能输,即E>

1\\ &ie (1+Y)^{WN}*(1-RY)^{(1-W)N}>1\\ &ie [(1+Y)^{W} *(1- RY)^{(1-W)}]^{N}>1\\ &因为N是正整数,所以等价于(1+Y)^{W}*(1-RY)^ {1-W }>1\\&因为Y>0,所以(1+Y)>1,(1+Y)^{W}也必须大于1,也就是总收益中的盈利部分\\&R>0, Y>0,所以 (1-RY) 小于 1,索引 1-W 大于 0\\ & 所以 (1-RY)^{1-W} 也必须小于 1,即损失部分总回报 \\ \end{aligned}' />

提点---总收益率E是盈利部分(1+Y)WN和亏损部分(1-RY)(1-W)N的乘积。

分析参数

十倍杠杆亏了要不要还

总而言之,赢率和盈亏率越大越好。胜率越大,盈亏比越大,可以使用的实际收益率越大,也就是杠杆越大;否则,它越小。都是废话。

程序测试

使用易于使用的 python 进行测试。

遍历所有因素计算最终收益的接口

def calculate_rate_of_return(wr_list=None, lr_list=None, yr_list=None, lever_list=None, trade_cnt=TRADE_CNT):
    """
    :param wr_list: 胜率
    :param lr_list: 亏盈比
    :param yr_list: 收益率
    :param lever_list:杠杆
    :param trade_cnt:交易次数
    :return:
    """
    # 遍历胜率
    if lever_list is None:
        lever_list = [1]
    if yr_list is None:
        yr_list = [0.1]
    if lr_list is None:
        lr_list = [0.5]
    if wr_list is None:
        wr_list = [0.6]
    for wr in wr_list:
        win_cnt = int(trade_cnt * wr)
        lose_cnt = trade_cnt - win_cnt
        # 遍历基础收益率
        for yr in yr_list:
            print('\n')
            # 遍历盈亏比
            for lr in lr_list:
                true_yield_rate_list = []
                for _ in range(win_cnt):
                    true_yield_rate_list.append(yr)
                for _ in range(lose_cnt):
                    true_yield_rate_list.append(-yr * lr)
                random.shuffle(true_yield_rate_list)  # 洗个牌,不影响最终收益
                # 遍历杠杆
                for lever in lever_list:
                    result = 1
                    for bs in true_yield_rate_list:
                        result = result * (1 + lever * bs)
                        if result < 0:
                            result = 0
                            break
                    print('wr = {:.2%}, yr = {:.2%},lr = {:.2%}, lever = {},result = {:.2f}'.format(
                        wr, yr, lr, lever, result))

实验:不同盈亏比对最终收益的影响

懒得写代码和文字结果,看图就行了。

60%胜率,10%单次收益率:

60%胜率10%单次收益率不同盈亏比100首笔交易后收益率曲线

开始急剧上升,然后继续稳步上升,但不是那么明显,但基本上没有人能做到后面的部分。盈亏比3比4好。

实验:不同杠杆对最终收益率的影响

十倍杠杆亏了要不要还

因为实际收益率=杠杆*单次收益率,这里我们采用1%的固定收益率,1到200倍的杠杆测试,100笔交易。

60% 胜率,2:1 盈亏比:

可以看出,收益率开始随着杠杆的增加而增加,约85%的真实单笔收益率达到最高,120%后开始回零。如果市场波动率为10%,你就有60%的赢率和2:1的盈亏比,这似乎是一个完全盈利的赢率和盈亏比的组合。如果您使用8.5倍杠杆下单,您将获得最高的盈利率,12倍的订单将被平仓为零。可以看出,8.5和12的区别其实差别不大。考虑到真实行情的波动可能没有那么标准,峰值可能更大,那么在实践中,如果使用8.5,可能已经卖光了。

60%胜率,10:1超高盈亏比十倍杠杆亏了要不要还,1~200倍杠杆:

纳尼?似乎更多的杠杆是更好的。我继续将杠杆增加到1000。

可以看出,当杠杆接近600倍时利润最大,然后开始下降,700左右开始回零。

90%超高胜率,2:1盈亏比:

同样是先升后降。

十倍杠杆亏了要不要还

好像效果不如盈亏比那么明显,所以提高胜率99%看看。

不过好像也没多大用处,因为不支持盈亏比,超杠杆后平仓,囧~

实验:不同胜率的影响

4:1的盈亏比十倍杠杆亏了要不要还,单次收益率为5%:

可以看到,胜率对最终收益的影响基本上是指数级的。事实上,这很容易理解。中奖率提高后,你会赚的多,输的少,得的多。加上复利的影响,自然会增加不少。

实验:50%胜率,1:1盈亏比,不同基准收益率下需要归零的次数

我们知道,如果胜率是50%,1胜1负1,盈亏比都是一样的,其实你会慢慢回到零。比如你有100,赚50%就是150,亏50%就变成75。看起来赢一次输一次,比例还是一样的,但是在事实上你的钱会更少。

现在使用程序来测试在不同的基准利率下归零所需的次数。

测试代码:

def test_trade_cnt_fixed_50wr_50rr(lever=1):
    """
    因为杠杆就是直接增加收益率,所以这里可以只考虑没有杠杆的情况
    """
    for yr in [x * 0.05 for x in range(1,21,1)]:
        result = 1
        trade_cnt = 0
        while True:
            result = result * (1 + lever * yr)
            trade_cnt += 1
            result = result * (1 - lever * yr)
            trade_cnt += 1
            if result < 0.01:
                print(
                    'yr is {:.2f}, be 0 after {} trade'.format(yr, trade_cnt))
                break
test_trade_cnt_fixed_50wr_50rr()

十倍杠杆亏了要不要还

测试结果:

yr is 0.05, be 0 after 3680 trade
yr is 0.10, be 0 after 918 trade
yr is 0.15, be 0 after 406 trade
yr is 0.20, be 0 after 226 trade
yr is 0.25, be 0 after 144 trade
yr is 0.30, be 0 after 98 trade
yr is 0.35, be 0 after 72 trade
yr is 0.40, be 0 after 54 trade
yr is 0.45, be 0 after 42 trade
yr is 0.50, be 0 after 34 trade
yr is 0.55, be 0 after 26 trade
yr is 0.60, be 0 after 22 trade
yr is 0.65, be 0 after 18 trade
yr is 0.70, be 0 after 14 trade
yr is 0.75, be 0 after 12 trade
yr is 0.80, be 0 after 10 trade
yr is 0.85, be 0 after 8 trade
yr is 0.90, be 0 after 6 trade
yr is 0.95, be 0 after 4 trade
yr is 1.00, be 0 after 2 trade

虽然他们都在赔钱,但他们可以在波动较小的情况下活得更久。所以,如果你还没有证明有能力在市场上获得稳定的利润,尽量使用低杠杆,这样你就可以在这个市场上活得足够长,增长得足够慢,才能获得稳定的利润。

实验:批量下单对交易结果的影响

现在我们知道了盈亏比的重要性。那么如何提高盈亏比呢?其中一种方法是批量下单,用小仓位试探市场,然后跟进。先行者不盈利,后续不盈利。这损失了一些利润,但减少了更多的损失。

假设分成两批等值,第一批入市后发现无法盈利,亏损出局,则亏损减半,亏损比例可以考虑减少50%。同理,如果第一批入市后发现有盈利,后续的订单就会被成交,这样第一批就可以拿到所有的利润,第二批只能拿到后面的利润。假设第二批以全部利润的50%入市,那么实际总利润只小于第二批仓位早前本应获得的利润,一半仓位的市价的一半,即25%。因此,通过批量入市,利润是原来的75%。损失减少到1/2,利润减少到3/4,R变成(1/2)/(3/4) = 2/3,即R变成2/3原来,盈亏比例1/R变成了3/2。

这对实际交易结果有多大影响?用程序测试一下。

使用 60% 的胜率,盈利率为 10%。批处理前的盈亏比为0.6,批处理后为0.4。比较两种收入。

测试代码:

def test_in_batches():
    """
    :return:
    """
    calculate_rate_of_return(lr_list=[0.6], yr_list=[0.1], lever_list=[
        x for x in range(1, 21)], trade_cnt=20)
    calculate_rate_of_return(lr_list=[0.4], yr_list=[0.1], lever_list=[
        x for x in range(1, 21)], trade_cnt=20)
test_in_batches()

测试结果:

#没分批进场前
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 1,result = 1.91
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 2,result = 3.21
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 3,result = 4.76
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 4,result = 6.31
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 5,result = 7.48
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 6,result = 7.92
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 7,result = 7.46
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 8,result = 6.18
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 9,result = 4.44
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 10,result = 2.68
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 11,result = 1.31
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 12,result = 0.49
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 13,result = 0.12
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 14,result = 0.02
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 15,result = 0.00
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 16,result = 0.00
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 17,result = 0.00
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 18,result = 0.00
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 19,result = 0.00
wr = 60.00%, yr = 10.00%,lr = 60.00%, lever = 20,result = 0.00
#分批进场后
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 1,result = 2.26
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 2,result = 4.58
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 3,result = 8.38
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 4,result = 14.05
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 5,result = 21.77
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 6,result = 31.33
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 7,result = 42.08
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 8,result = 52.89
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 9,result = 62.30
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 10,result = 68.80
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 11,result = 71.14
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 12,result = 68.72
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 13,result = 61.75
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 14,result = 51.30
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 15,result = 39.06
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 16,result = 26.92
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 17,result = 16.50
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 18,result = 8.77
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 19,result = 3.89
wr = 60.00%, yr = 10.00%,lr = 40.00%, lever = 20,result = 1.36

可以看到效果非常明显。无分数 批次前,6倍杠杆时最大盈利7.92,11倍后开始亏损,14倍后开始回零。批后,11倍杠杆时最大获利71.14。 20 次没有看到损失和归零。看到这里,怎么做就不用说了?

关键点总结