设为首页收藏本站

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

如何理解下列语句 [复制链接]

Rank: 5Rank: 5

精华
0
UID
15246
积分
704
帖子
167
主题
74
阅读权限
60
注册时间
2010-8-17
最后登录
2021-9-5
跳转到指定楼层
1#
发表于 2010-10-17 20:09:58 |只看该作者 |倒序浏览
If(day!=day)
if(day!=Day[1])
if (date<>date[1])
If(Date!=Date[1]
if(day != today)
请教如何理解上面5句?有哪些区别?

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20901
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
2#
发表于 2010-10-18 09:09:26 |只看该作者
Day[1]是上一个bar的day数据
date[1]是上一个bar的date数据
<>和!=都是不等于的意思
if(day!=Day[1])和if(date<>date[1])是用当前bar的数据和上一根bar的数据进行比较,作用是区分是否是新的一天的bar
If(day!=day)这个是没有意义的
if(day != today)today不是系统函数,应该是用户自定义的变量或者其他

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15246
积分
704
帖子
167
主题
74
阅读权限
60
注册时间
2010-8-17
最后登录
2021-9-5
3#
发表于 2010-10-18 09:59:53 |只看该作者
2# lh948

谢谢!
1、那么如何理解 (date<>date[1])和(day<>Day[1])的区别呢?
2、在分钟图上有时要判断当前bar是否为今天,如果我在日线上操作,是否还需要用到(day<>Day[1])呢?
3、另外编写了个交易指令,今天同一时间不停发单直至满仓,提示资金不足,能否帮忙看看哪里有问题?(在日线图上操作的)
代码如下:
Vars
        Numeric  N;  // 波幅
        Numeric  myentryprice;   // 开仓价格
        NumericSeries Line1;
        NumericSeries Line2;
Begin      
        N=High[1]-Low[1];
        Line1 = Open+N*0.2;
        Line2 = Open-N*0.2;
               
if( date!=date[1] || barstatus==0)       
{GetGlobalVar(0)==0;}

If(CurrentTime < 0.144500)  // 时间在14:45之前
{
        If(MarketPosition == 0 )
        {
          if(CrossOver(High,Line1))
         {
          myentryprice=Line1+1;               
         A_SendOrder (Enum_Buy,Enum_Entry,1, myentryprice);
          }
          setglobalvar(0,1);
         Return;
                  
         if(CrossUnder(Low,Line2))
              {
         myentryprice=Line2-1;               
        A_SendOrder (Enum_Sell,Enum_Entry,1, myentryprice);
        setglobalvar(0,1);
        Return;
        }
        }
}


        If(MarketPosition == 1 And Close < Low) // 多仓的止损
        {
        A_SendOrder (Enum_Sell,Enum_Exit,0, Low);
        }
               
        If(MarketPosition == -1 And Close > High) // 空仓的止损
        {
        A_SendOrder (Enum_Buy,Enum_Exit,0, High);
        }
               

If(CurrentTime > 0.145500) // 时间在14:55之后
{
        If(MarketPosition == 1)
        {
        A_SendOrder (Enum_Sell,Enum_Exit,0, Low);
        }
               
        Else
        {
        If(MarketPosition == -1)
        {
        A_SendOrder (Enum_Buy,Enum_Exit,0, High);
        }
        }
}

End

今天棕榈油开盘上涨超过8210点,满足条件后就不停发单,只好手动平掉,取消自动了。
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 1

精华
0
UID
246133
积分
38
帖子
29
主题
9
阅读权限
10
注册时间
2017-1-15
最后登录
2023-6-6
4#
发表于 2018-5-28 15:57:35 |只看该作者
A函数是不受MarketPosition控制的

使用道具 举报

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

bottom

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

GMT+8, 2024-5-10 20:25

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部