设为首页收藏本站

 找回密码
 注册
楼主: wide
打印 上一主题 下一主题

关于控制开仓手数的问题(A_SendOrder) [复制链接]

Rank: 3Rank: 3

精华
0
UID
20900
积分
122
帖子
21
主题
3
阅读权限
40
注册时间
2010-12-4
最后登录
2011-12-27
11#
发表于 2011-1-8 09:35:24 |只看该作者
出啥子问题了?全部程序都在贴子上,请指点一下。

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
7437
积分
2872
帖子
537
主题
133
阅读权限
80
注册时间
2010-3-15
最后登录
2013-11-15
12#
发表于 2011-1-8 23:00:32 |只看该作者
本帖最后由 欲速不达 于 2011-1-8 23:07 编辑

回复 11# wide


    全局变量用起来比较复杂,从你贴出的代码看,你对TB全局变量的运作机制一点都没搞明白,所以建议你最好用buy/sell函数开平仓,就什么问题都没有。BarStatus这个函数好像也不是很明白,是吗?BarStatus==2 进行开平仓就不明白你的思路是什么了,它代表从左边开始第2bar,你这样设计有点不明白?

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
20900
积分
122
帖子
21
主题
3
阅读权限
40
注册时间
2010-12-4
最后登录
2011-12-27
13#
发表于 2011-1-10 09:17:01 |只看该作者
全局变量哪出了问题?这么简单的程序,指出问题不就得了?

在论坛上解决一个问题怎么就那么难,还凡事都往论坛上推?!!!

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
20900
积分
122
帖子
21
主题
3
阅读权限
40
注册时间
2010-12-4
最后登录
2011-12-27
14#
发表于 2011-1-10 09:43:57 |只看该作者
BarStatus==2表示最后一个Bar

BarStatus
说明 当前公式应用商品当前Bar的状态值。
语法 Integer BarStatus()
参数 无
备注 当前公式应用商品当前Bar的状态值,返回值0表示为第一个Bar,返回值为1表示为中间的普通Bar,返回值为2表示最后一个Bar。
示例 BarStatus==0表示第一个Bar
BarStatus==2表示最后一个Bar
BarStatus==1表示第一个Bar和最后一个Bar之间的所有Bar

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
20900
积分
122
帖子
21
主题
3
阅读权限
40
注册时间
2010-12-4
最后登录
2011-12-27
15#
发表于 2011-1-10 09:45:05 |只看该作者
理解不对吗

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20901
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
16#
发表于 2011-1-10 09:58:20 |只看该作者
试试这段
Params                                                                                       
        Numeric Lots(1);                                                                 // 默认的交易数量
Vars  
        BoolSeries BLONG;                                        //开多条件
        BoolSeries BSHORT;                                //开空条件
Begin

        If (BarStatus==0)   
                SetGlobalVar(8,0);

        BLONG = Low[1]-Low[2]>0 And low[2]-low[3]>0;                                                                           
        BSHORT = High[1]-High[2]<0 And High[2]-High[3]<0;   
       
        If(BLONG==True  And GetGlobalVar(8)!=1 And QuoteDataExist==True)  //全局变量==0   
        {
                SetGlobalVar(8,1);
                If(A_SellPosition>0 && GetGlobalVar(8)==-1)
                                        A_SendOrder(Enum_Buy,Enum_Exit,A_SellPosition,Q_AskPrice+2*MinMove*PriceScale);
                A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice+2*MinMove*PriceScale);
        }                                                                           
        If(BSHORT==True  And GetGlobalVar(8)!=-1 And QuoteDataExist==True)      
        {
                SetGlobalVar(8,-1);
                If(A_BuyPosition>0 && GetGlobalVar(8)==1)
                        A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition,Q_BidPrice+2*MinMove*PriceScale);
                A_SendOrder(Enum_Sell,Enum_Entry,1,Q_BidPrice-2*MinMove*PriceScale);
        }
End

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
20900
积分
122
帖子
21
主题
3
阅读权限
40
注册时间
2010-12-4
最后登录
2011-12-27
17#
发表于 2011-1-10 10:01:16 |只看该作者
好的,多谢

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
20900
积分
122
帖子
21
主题
3
阅读权限
40
注册时间
2010-12-4
最后登录
2011-12-27
18#
发表于 2011-1-10 11:22:47 |只看该作者
测试了,还是出现多手情况。并经手动清空仓位,重新加载上述交易程序确认。
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
20900
积分
122
帖子
21
主题
3
阅读权限
40
注册时间
2010-12-4
最后登录
2011-12-27
19#
发表于 2011-1-10 20:28:39 |只看该作者
lh948老大,您再帮看看。还有啥子问题?!
先在这里多谢了!!!

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
20900
积分
122
帖子
21
主题
3
阅读权限
40
注册时间
2010-12-4
最后登录
2011-12-27
20#
发表于 2011-1-11 22:59:04 |只看该作者
不理人了

使用道具 举报

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

bottom

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

GMT+8, 2024-5-10 04:50

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部