| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2321 人关注过本帖
标题:哪位朋友帮我改一下
只看楼主 加入收藏
xxwyyf007
Rank: 2
等 级:论坛游民
帖 子:24
专家分:14
注 册:2016-4-26
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:9 
哪位朋友帮我改一下
比方说初始本金100块,拿出20%(即20块)用于投资,
如果赚了1倍(即赚了20块),立即停止投资(此时本金变为120块,下次继续投资仍拿出20%,即24块)
如果赔了50%(即亏了10块),也立即停止投资(此时本金变为90块,下次继续投资仍拿出20%,即18块)
如些反复投资100次后,假设胜率为60%(即共有60次是赚的),最后是多少钱?

图片附件: 游客没有浏览图片的权限,请 登录注册


“结果”按钮的代码

 Dim m1, m2, m3, m4, m5, m6, x, y
m1 = Val(Text1.Text) '总本金为几块
m2 = Val(Text2.Text) ' 投资百分比
m3 = Val(Text3.Text) ' 赚几倍就跑
m4 = Val(Text4.Text) ' 亏百分之几也跑
m5 = Val(Text5.Text) '胜率的百分比
m6 = Val(Text6.Text) ' 交易的次数
x = 0              '亏的累加次数
y = 0              '盈的累加次数

?????
z = Int(Rnd() * 2)
If z = 0 And x < (1 - m5 * 0.01) * m6 Then
m1 = m1 - m1 * m2 * 0.01 * m4 * 0.01
x = x + 1
End If
If z = 1 And y < m5 * 0.01 * m6 Then
m1 = m1 + m1 * m2 * 0.01 * m3
y = y + 1
End If
?????

Text7.Text = Str(m1 * 10000)


这思路好像是错的,特别是问号处,哪位朋友能帮我完善一下吗?小白一个,不胜感激!!!







[此贴子已经被作者于2016-4-26 13:25编辑过]

搜索更多相关主题的帖子: 百分比 朋友 
2016-04-26 13:22
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:0 
假设前提是不是一定赚就赚20%,亏就一定亏一半?。
2016-04-26 15:56
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
程序代码:
Option Explicit

Dim sl() As Long        '1,代表赢,0代表亏,-1代表已使用

Private Sub Command1_Click()
Dim m1 As Single, m2 As Single, m3 As Single, m4 As Single
Dim m5 As Single, m6 As Long

Dim x As Single, y As Single
Dim z As Single


Dim i As Long
Dim s As String

m1 = Val(Text1.Text) '总本金为几块
m2 = Val(Text2.Text) ' 投资百分比
m3 = Val(Text3.Text) ' 赚几倍就跑
m4 = Val(Text4.Text) ' 亏百分之几也跑
m5 = Val(Text5.Text) '胜率的百分比
m6 = Val(Text6.Text) ' 交易的次数

ReDim sl(m6)         '胜率

For i = 1 To m5 * m6 / 100      '生成总胜率数据,以确保完全符合胜率
    sl(i) = 1
Next i

s = "起始本金:" & Format(m1, "0.00") & vbCrLf
s = s & "投资百分比:" & m2 & "%" & vbCrLf
s = s & "投资赚 " & m3 & " 倍离场" & vbCrLf
s = s & "投资亏 " & m4 & "% 离场" & vbCrLf
s = s & "胜率:" & m5 & "%" & vbCrLf
s = s & "交易次数:" & m6 & vbCrLf

For i = 1 To m6
    s = s & "------第 " & i & " 次交易------" & vbCrLf
    If x = 0 Then
        x = m1 * m2 / 100
        m1 = m1 - x
    End If

    s = s & "总资产:" & Format(m1, "0.00") & "+" & Format(x, "0.00") & "=" & Format(m1 + x, "0.00") & vbCrLf
    s = s & "本金:" & Format(m1, "0.00") & "  投资:" & Format(x, "0.00") & vbCrLf
    y = yinkui
    If y > 0 Then
        z = Round(x * y / 100, 2)
        x = x + z
        s = s & "本次投资赚 " & y & "% ,投资收益:" & z & vbCrLf
        If y > m3 * 100 Then
            '离场
            m1 = m1 + x
            x = 0
            s = s & "离场" & vbCrLf
        End If
    Else
        z = Round(x * y / 100, 2)
        x = x + z
        s = s & "本次投资亏 " & -y & "% ,投资损失:" & z & vbCrLf
        If -y > m4 Then
            '离场
            m1 = m1 + x
            x = 0
            s = s & "离场" & vbCrLf
        End If
    End If
Next i
    m1 = m1 + x
    s = s & "------结  算------" & vbCrLf
    s = s & "总资产:" & Format(m1, "0.00")
Text7.Text = s
End Sub

Public Function yinkui() As Single
'返回赢亏
Dim i As Long
Dim j As Long

i = Int(Rnd() * UBound(sl)) + 1
Do
    If sl(i) = -1 Then
        i = i + 1
        If i > UBound(sl) Then
            i = 1
        End If
    Else
        Exit Do
    End If
Loop
j = Int(Rnd() * 120)        '最大赢率:+ 120% 到 -100%
If sl(i) = 0 Then j = -j
sl(i) = -1
If j < -100 Then j = -100    '防止亏掉本金,只能亏投资
yinkui = j
End Function


[此贴子已经被作者于2016-4-26 21:44编辑过]


授人于鱼,不如授人于渔
早已停用QQ了
2016-04-26 21:31
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
是需要这样的结果吗??

起始本金:10000.00
投资百分比:20%
投资赚 1 倍离场
投资亏 50% 离场
胜率:60%
交易次数:20
------第 1 次交易------
总资产:8000.00+2000.00=10000.00
本金:8000.00  投资:2000.00
本次投资亏 64% ,投资损失:-1280
离场
------第 2 次交易------
总资产:6976.00+1744.00=8720.00
本金:6976.00  投资:1744.00
本次投资赚 34% ,投资收益:592.96
------第 3 次交易------
总资产:6976.00+2336.96=9312.96
本金:6976.00  投资:2336.96
本次投资赚 92% ,投资收益:2150
------第 4 次交易------
总资产:6976.00+4486.96=11462.96
本金:6976.00  投资:4486.96
本次投资赚 91% ,投资收益:4083.13
------第 5 次交易------
总资产:6976.00+8570.09=15546.09
本金:6976.00  投资:8570.09
本次投资亏 85% ,投资损失:-7284.58
离场
------第 6 次交易------
总资产:6609.21+1652.30=8261.51
本金:6609.21  投资:1652.30
本次投资赚 49% ,投资收益:809.63
------第 7 次交易------
总资产:6609.21+2461.93=9071.14
本金:6609.21  投资:2461.93
本次投资亏 94% ,投资损失:-2314.22
离场
------第 8 次交易------
总资产:5405.54+1351.38=6756.92
本金:5405.54  投资:1351.38
本次投资赚 115% ,投资收益:1554.09
离场
------第 9 次交易------
总资产:6648.81+1662.20=8311.01
本金:6648.81  投资:1662.20
本次投资亏 6% ,投资损失:-99.73
------第 10 次交易------
总资产:6648.81+1562.47=8211.28
本金:6648.81  投资:1562.47
本次投资亏 43% ,投资损失:-671.86
------第 11 次交易------
总资产:6648.81+890.61=7539.42
本金:6648.81  投资:890.61
本次投资赚 92% ,投资收益:819.36
------第 12 次交易------
总资产:6648.81+1709.97=8358.78
本金:6648.81  投资:1709.97
本次投资赚 71% ,投资收益:1214.08
------第 13 次交易------
总资产:6648.81+2924.05=9572.86
本金:6648.81  投资:2924.05
本次投资赚 35% ,投资收益:1023.42
------第 14 次交易------
总资产:6648.81+3947.47=10596.28
本金:6648.81  投资:3947.47
本次投资亏 77% ,投资损失:-3039.55
离场
------第 15 次交易------
总资产:6045.38+1511.35=7556.73
本金:6045.38  投资:1511.35
本次投资赚 33% ,投资收益:498.74
------第 16 次交易------
总资产:6045.38+2010.09=8055.47
本金:6045.38  投资:2010.09
本次投资赚 98% ,投资收益:1969.88
------第 17 次交易------
总资产:6045.38+3979.97=10025.35
本金:6045.38  投资:3979.97
本次投资亏 100% ,投资损失:-3979.97
离场
------第 18 次交易------
总资产:4836.30+1209.08=6045.38
本金:4836.30  投资:1209.08
本次投资赚 27% ,投资收益:326.45
------第 19 次交易------
总资产:4836.30+1535.53=6371.83
本金:4836.30  投资:1535.53
本次投资亏 100% ,投资损失:-1535.53
离场
------第 20 次交易------
总资产:3869.04+967.26=4836.30
本金:3869.04  投资:967.26
本次投资赚 64% ,投资收益:619.05
------结  算------
总资产:5455.35


起始本金:10000.00
投资百分比:20%
投资赚 1 倍离场
投资亏 50% 离场
胜率:60%
交易次数:20
------第 1 次交易------
总资产:8000.00+2000.00=10000.00
本金:8000.00  投资:2000.00
本次投资赚 119% ,投资收益:2380
离场
------第 2 次交易------
总资产:9904.00+2476.00=12380.00
本金:9904.00  投资:2476.00
本次投资亏 1% ,投资损失:-24.76
------第 3 次交易------
总资产:9904.00+2451.24=12355.24
本金:9904.00  投资:2451.24
本次投资赚 12% ,投资收益:294.15
------第 4 次交易------
总资产:9904.00+2745.39=12649.39
本金:9904.00  投资:2745.39
本次投资赚 95% ,投资收益:2608.12
------第 5 次交易------
总资产:9904.00+5353.51=15257.51
本金:9904.00  投资:5353.51
本次投资赚 5% ,投资收益:267.68
------第 6 次交易------
总资产:9904.00+5621.19=15525.19
本金:9904.00  投资:5621.19
本次投资赚 45% ,投资收益:2529.54
------第 7 次交易------
总资产:9904.00+8150.73=18054.73
本金:9904.00  投资:8150.73
本次投资赚 113% ,投资收益:9210.33
离场
------第 8 次交易------
总资产:21812.05+5453.01=27265.06
本金:21812.05  投资:5453.01
本次投资亏 48% ,投资损失:-2617.45
------第 9 次交易------
总资产:21812.05+2835.56=24647.61
本金:21812.05  投资:2835.56
本次投资赚 19% ,投资收益:538.76
------第 10 次交易------
总资产:21812.05+3374.32=25186.37
本金:21812.05  投资:3374.32
本次投资赚 77% ,投资收益:2598.23
------第 11 次交易------
总资产:21812.05+5972.55=27784.60
本金:21812.05  投资:5972.55
本次投资赚 49% ,投资收益:2926.55
------第 12 次交易------
总资产:21812.05+8899.10=30711.15
本金:21812.05  投资:8899.10
本次投资亏 39% ,投资损失:-3470.65
------第 13 次交易------
总资产:21812.05+5428.45=27240.50
本金:21812.05  投资:5428.45
本次投资亏 24% ,投资损失:-1302.83
------第 14 次交易------
总资产:21812.05+4125.62=25937.67
本金:21812.05  投资:4125.62
本次投资赚 70% ,投资收益:2887.94
------第 15 次交易------
总资产:21812.05+7013.56=28825.61
本金:21812.05  投资:7013.56
本次投资赚 54% ,投资收益:3787.32
------第 16 次交易------
总资产:21812.05+10800.88=32612.93
本金:21812.05  投资:10800.88
本次投资亏 31% ,投资损失:-3348.27
------第 17 次交易------
总资产:21812.05+7452.61=29264.66
本金:21812.05  投资:7452.61
本次投资亏 45% ,投资损失:-3353.68
------第 18 次交易------
总资产:21812.05+4098.93=25910.98
本金:21812.05  投资:4098.93
本次投资亏 100% ,投资损失:-4098.93
离场
------第 19 次交易------
总资产:17449.64+4362.41=21812.05
本金:17449.64  投资:4362.41
本次投资亏 75% ,投资损失:-3271.81
离场
------第 20 次交易------
总资产:14832.19+3708.05=18540.24
本金:14832.19  投资:3708.05
本次投资赚 11% ,投资收益:407.89
------结  算------
总资产:18948.13


[此贴子已经被作者于2016-4-26 21:46编辑过]


授人于鱼,不如授人于渔
早已停用QQ了
2016-04-26 21:41
xxwyyf007
Rank: 2
等 级:论坛游民
帖 子:24
专家分:14
注 册:2016-4-26
收藏
得分:0 
以下是引用yangfrancis在2016-4-26 15:56:25的发言:

假设前提是不是一定赚就赚20%,亏就一定亏一半?。


可能是你的笔误吧
假设前提是一定赚就赚几倍(text3的值)就跑,然后进行下一场的投资
亏就一定亏百分之几(text4的值)就跑,然后进行下一场的投资。

能否帮忙编一个?谢谢!

可以借助一下我在6楼的回复




[此贴子已经被作者于2016-4-27 00:19编辑过]

2016-04-26 22:16
xxwyyf007
Rank: 2
等 级:论坛游民
帖 子:24
专家分:14
注 册:2016-4-26
收藏
得分:0 
以下是引用风吹过b在2016-4-26 21:41:04的发言:

是需要这样的结果吗??


很遗憾,不是这样的。如果是赚的话,就赚1倍;如果是亏的话就亏50%。在不重新设定之前,这20次的交易中都是这样盈亏比例的。


图片附件: 游客没有浏览图片的权限,请 登录注册










[此贴子已经被作者于2016-4-27 00:20编辑过]

2016-04-26 23:35
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
以下是引用xxwyyf007在2016-4-26 23:35:58的发言:
很遗憾,不是这样的。如果是赚的话,就赚1倍;如果是亏的话就亏50%。在不重新设定之前,这20次的交易中都是这样盈亏比例的。


我代码写在你回答之前。
固定比例。
那就在 返回的 赢亏里写死就是了。
原来是随机产生的,改成固定的就是了

j = Int(Rnd() * 120)        '最大赢率:+ 120% 到 -100%
If sl(i) = 0 Then j = -j
If j < -100 Then j = -100    '防止亏掉本金,只能亏投资
sl(i) = -1

改成
程序代码:
If sl(i) = 0 Then
    j = -50
Else
    j = 100
End If
sl(i) = -1


-----------
你要求每次都离场,把离场前的判断去掉就是了,强制每次都离场就是了。
少了很多乐趣,无趣。

起始本金:10000.00
投资百分比:20%
投资赚 1 倍离场
投资亏 50% 离场
胜率:60%
交易次数:5
------第 1 次交易------
总资产:8000.00+2000.00=10000.00
本金:8000.00  投资:2000.00
本次投资亏 50% ,投资损失:-1000
离场
------第 2 次交易------
总资产:7200.00+1800.00=9000.00
本金:7200.00  投资:1800.00
本次投资亏 50% ,投资损失:-900
离场
------第 3 次交易------
总资产:6480.00+1620.00=8100.00
本金:6480.00  投资:1620.00
本次投资赚 100% ,投资收益:1620
离场
------第 4 次交易------
总资产:7776.00+1944.00=9720.00
本金:7776.00  投资:1944.00
本次投资赚 100% ,投资收益:1944
离场
------第 5 次交易------
总资产:9331.20+2332.80=11664.00
本金:9331.20  投资:2332.80
本次投资赚 100% ,投资收益:2332.8
离场
------结  算------
总资产:13996.80

授人于鱼,不如授人于渔
早已停用QQ了
2016-04-27 10:11
xxwyyf007
Rank: 2
等 级:论坛游民
帖 子:24
专家分:14
注 册:2016-4-26
收藏
得分:0 
以下是引用风吹过b在2016-4-27 10:11:40的发言:



我代码写在你回答之前。
固定比例。
那就在 返回的 赢亏里写死就是了。
原来是随机产生的,改成固定的就是了


改成

If sl(i) = 0 Then
    j = -50
Else
    j = 100
End If
sl(i) = -1


-----------
你要求每次都离场,把离场前的判断去掉就是了,强制每次都离场就是了。
少了很多乐趣,无趣。


不好意思,又打扰你了。
你贴的结果是对的,但我模拟一下,仍是错误的,不知哪个代码改错了?
小小白一个,你说的离场判断代码不知在哪里改。
能否贴个完整的代码,让我学习,谢谢!

图片附件: 游客没有浏览图片的权限,请 登录注册








2016-04-27 23:21
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:20 
        If y > m3 * 100 Then
            '离场
            m1 = m1 + x
            x = 0
            s = s & "离场" & vbCrLf
        End If


        If -y > m4 Then
            '离场
            m1 = m1 + x
            x = 0
            s = s & "离场" & vbCrLf
        End If


去掉这二个IF 的判断,留里面的三行命令。
每次都执行离场就是了。

完整代码,很抱歉,这个代码我没保存,无法再提供完整给你了


授人于鱼,不如授人于渔
早已停用QQ了
2016-04-28 08:35
xxwyyf007
Rank: 2
等 级:论坛游民
帖 子:24
专家分:14
注 册:2016-4-26
收藏
得分:0 
回复 9楼 风吹过b
可以用了,非常的感谢,俺可以一条一条拆开学习了
2016-04-30 08:08
快速回复:哪位朋友帮我改一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024106 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved