设为首页收藏本站

 找回密码
 注册
查看: 3171|回复: 8
打印 上一主题 下一主题

请教版主(nopain版主,程序贴上了,进来看看-继续请教) [复制链接]

Rank: 4

精华
0
UID
1117
积分
403
帖子
62
主题
28
阅读权限
50
注册时间
2008-1-27
最后登录
2019-3-30
跳转到指定楼层
1#
发表于 2008-3-26 09:53:55 |只看该作者 |倒序浏览
最后一根Bar上模拟账户交易,满足条件,开多仓 43手; 进入下一根Bar,倒数第二根Bar图表上开37手(还是没找到让它们一致的方法,我在起始交易的时候,特意调整回溯帐户的金额和模拟账户的一直也不行)。

问题: 37手是 Bar !=2的分支开的,并且也图表上正确显示了,可是我的模拟帐户里也开了一次37手的多仓,这样模拟帐户就开了两次多仓:一次是 43手,一次是37手。   Bar!=2分支怎么会开到模拟帐户里呢? (我在还程序里 Bar==2的地方都加了FileAppend语句,查看了输出结果,没有开37的;在Bar!=2的分支里有开的)

什么情况导致了 Bar!=2 分支开仓,会开到模拟帐户里去??

[ 本帖最后由 live4fun 于 2008-3-27 11:46 编辑 ]

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
2#
发表于 2008-3-26 10:23:56 |只看该作者
看来您的公式的写法可能有些问题,不如把您的部分代码贴出来看看

使用道具 举报

Rank: 4

精华
0
UID
1117
积分
403
帖子
62
主题
28
阅读权限
50
注册时间
2008-1-27
最后登录
2019-3-30
3#
发表于 2008-3-26 11:27:54 |只看该作者
在用软件里的海龟程序框架,试着搭出一个可以可靠运行的系统(先不管交易的结果,只要能按设想的运行)
麻烦版主一定详细分析指教,有什么地方不妥。
以下是开仓代码部分:

DonchianHi = HighestFC(Close[1],boLength);
DonchianLo = LowestFC(Close[1],boLength);

If(BarStatus==2)
{
       If(A_TotalPosition == 0 )  
       {
           If(Time >= 0.091500&&Time <0.144500&&CrossOver(High,DonchianHi))
           {
        myEntryPrice = Q_AskPrice;
                Buy(TurtleUnits,myEntryPrice);
            }  
                  
            If(Time >= 0.091500&&Time <0.144500&&CrossUnder(Low,DonchianLo))
            {
                myEntryPrice = Q_BidPrice;
                SellShort(TurtleUnits,myEntryPrice);
            }
        }
      。。。。//有持仓部分
        
}Else
{
       If(MarketPosition == 0)
       {
           If(Time >= 0.091500&&Time <0.144500&&CrossOver(High,DonchianHi))
           {
                myEntryPrice = min(high,DonchianHi + MinScalePrice);
                myEntryPrice = IIF(myEntryPrice < Open, Open,myEntryPrice);
                Buy(TurtleUnits,myEntryPrice);
        }  
            If(Time >= 0.091500&&Time <0.144500&&CrossUnder(Low,DonchianLo))
            {
                myEntryPrice = max(low,DonchianLo - MinScalePrice);
                myEntryPrice = IIF(myEntryPrice > Open, Open,myEntryPrice);
                SellShort(TurtleUnits,myEntryPrice);
            }
        }

     .....//有回溯持仓部分
       
}

使用道具 举报

Rank: 4

精华
0
UID
1117
积分
403
帖子
62
主题
28
阅读权限
50
注册时间
2008-1-27
最后登录
2019-3-30
4#
发表于 2008-3-26 18:00:11 |只看该作者
nopain版主麻烦看看哪里有问题?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
5#
发表于 2008-3-27 09:10:32 |只看该作者
1、为什么会出现37和43两个数量,要看您TurtleUnits变量的赋值代码。
2、把上面的问题找到之后,就能知道是哪里的代码开了第二次仓

另外,您是在什么周期上交易

使用道具 举报

Rank: 4

精华
0
UID
1117
积分
403
帖子
62
主题
28
阅读权限
50
注册时间
2008-1-27
最后登录
2019-3-30
6#
发表于 2008-3-27 09:25:44 |只看该作者
if(CurrentBar ==2)
{用A_函数,取模拟帐户的资金值,计算出的,开了37手; }

if(CurrentBar!=2){用CurrendEquity计算,回溯帐户的开了42手}

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
7#
发表于 2008-3-27 09:32:02 |只看该作者
开仓数量不能这么写,您得用同样的数量,平仓时倒是可以考虑用分支来控制。但实际上您这么用A函数都是把简单的事情复杂化,你的需求根本不需要用A函数,直接用交易助手来保证成交就可以了。

A函数一般只是用来做套利或不需要回溯测试的系统的编写。

使用道具 举报

Rank: 4

精华
0
UID
1117
积分
403
帖子
62
主题
28
阅读权限
50
注册时间
2008-1-27
最后登录
2019-3-30
8#
发表于 2008-3-27 11:45:29 |只看该作者
1或者5分钟线上。

  noapin版主:
要保证开仓量相等,资金以哪个账户的为准?
开仓数量用回溯帐户的数值计算,以保证图表上和交易的开仓量相等?
(但要设置保证回溯帐户的资金别大于交易帐户的,注意实际交易的风险控制?)

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
9#
发表于 2008-3-27 11:53:02 |只看该作者
假设您的的真实帐户有10万,您就可以将模拟帐户资金设置10万,一般情况下都会将仓位控制在资金的3成左右,即使日内交易也不可能超过8成。所以两个账户资金的差值一般不会导致资金不够的情况出现。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-23 10:28

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部