设为首页收藏本站

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

全局变量问题 [复制链接]

Rank: 1

精华
0
UID
243612
积分
5
帖子
3
主题
2
阅读权限
10
注册时间
2016-11-24
最后登录
2016-12-13
跳转到指定楼层
1#
发表于 2016-12-13 09:50:22 |只看该作者 |倒序浏览
Params
    Bool bInitStatus(False); //初始化标志,修改初始仓位时设置为True
Numeric InitMyrealmp(0); //初始当前仓位,正数表示多单,负数表示空单
Numeric FirstGrid(30);//第一笔交易的间距,最小跳动
Numeric AddGrid(5);//加仓间距,最小跳动
Numeric totalGrids(10);//最大交易次数
Numeric TrailingGrid(30);//移动止损间距,最小跳动
Numeric EveryLots(1);//每次开仓手数
Numeric OffSet(1);//委托价偏差
Numeric ExitOnCloseMins(14.55);//收盘平仓时间
Vars
    Numeric HighAfterLongEntry;
Numeric LowAfterShortEntry;
Numeric MyRealMp(0);
Numeric MinPoint;
Numeric TmpPrice;
Numeric TmpLots;
Begin
    MinPoint=MinMove*PriceScale;//最小变动价位
MyRealMp=GetGlobalVar(0);//获取某个索引的全局变量
HighAfterLongEntry=GetGlobalVar(1);
LowAfterShortEntry=GetGlobalVar(2);
If(BarStatus==0 And (MyRealMp==InvalidNumeric||bInitStatus))//第一根K线&&(MyRealMp为无效值||初始仓位未改变)
{
MyRealMp=InitMyrealmp;//初始持仓为0
}
If(Date<>Date[1])//天数不同
{
HighAfterLongEntry=High;
LowAfterShortEntry=low;
MyRealMp=0;
PlotNumeric("HighAfterLongEntry1",HighAfterLongEntry);
PlotNumeric("LowAfterShortEntry1",LowAfterShortEntry);
}

Else
{
HighAfterLongEntry=Max(HighAfterLongEntry,High);//到当根K线为止一天内的最高价
LowAfterShortEntry=Min(LowAfterShortEntry,Low);
PlotNumeric("HighAfterLongEntry2",HighAfterLongEntry);
PlotNumeric("LowAfterShortEntry2",LowAfterShortEntry);
}

红字部分中,ELSE中 HighAfterLongEntry=Max(HighAfterLongEntry,High); max括号里引用的HighAfterLongEntry是什么?

Rank: 1

精华
0
UID
241772
积分
20
帖子
17
主题
3
阅读权限
10
注册时间
2016-10-17
最后登录
2021-9-4
2#
发表于 2016-12-13 11:11:48 |只看该作者
如果盘面上第一根K线是9点的话,那么红色部分HighAfterLongEntry就是第一根K线的最高值,也就是high
第二根开始到下一天的9点之前,红色部分HighAfterLongEntry值为GetGlobalVar(1),个人见解,

使用道具 举报

Rank: 1

精华
0
UID
241772
积分
20
帖子
17
主题
3
阅读权限
10
注册时间
2016-10-17
最后登录
2021-9-4
3#
发表于 2016-12-13 11:31:26 |只看该作者
建议你在HighAfterLongEntry=Max(HighAfterLongEntry,High);//到当根K线为止一天内的最高价语句后面写上:setglobalvar(1,HighAfterLongEntry);

使用道具 举报

Rank: 1

精华
0
UID
243612
积分
5
帖子
3
主题
2
阅读权限
10
注册时间
2016-11-24
最后登录
2016-12-13
4#
发表于 2016-12-13 16:04:27 |只看该作者
rzp123_ 发表于 2016-12-13 11:11
如果盘面上第一根K线是9点的话,那么红色部分HighAfterLongEntry就是第一根K线的最高值,也就是high
第二根 ...

谢谢你啊  我还想问一下,就是GetGlobalVar(1) 是获取全局变量的意思吧? 他的值不应该是0吗?因为还没有对他进行过赋值

使用道具 举报

Rank: 1

精华
0
UID
241772
积分
20
帖子
17
主题
3
阅读权限
10
注册时间
2016-10-17
最后登录
2021-9-4
5#
发表于 2016-12-13 17:58:00 |只看该作者
zhour0218 发表于 2016-12-13 16:04
谢谢你啊  我还想问一下,就是GetGlobalVar(1) 是获取全局变量的意思吧? 他的值不应该是0吗? ...

恩,是的,你的这个程序没有对第二个全局变量赋值,也就是没有setglobalvar(1)语句,程序运行时getglobalvar(1)应该一直是一个值。

使用道具 举报

Rank: 1

精华
0
UID
241772
积分
20
帖子
17
主题
3
阅读权限
10
注册时间
2016-10-17
最后登录
2021-9-4
6#
发表于 2016-12-13 18:02:31 |只看该作者
zhour0218 发表于 2016-12-13 16:04
谢谢你啊  我还想问一下,就是GetGlobalVar(1) 是获取全局变量的意思吧? 他的值不应该是0吗? ...


全局变量的初始值是无效值,只有在你赋值过后才会读取出有效值。

使用道具 举报

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

bottom

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

GMT+8, 2024-4-20 00:45

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部