开拓者 TB如何为全局变量赋初值? [开拓者 TB]
hql123 发表于 2012-9-17 09:02
谢谢!如果不是历史测试,应该如何赋值,请赐教!
您的逻辑跟我的思考模式有点不同,我个人认为这样写应该有信号,但是实际却没有,请试试把marketposition=0 1 -1三种情况分开写是否会好一些,只看到部分代码,不清楚LZ的策略是否是一只反手没有空仓,但是个人习惯分开写这样方便找出问题。
commetery 这个多用在一些判断句中会对自己纠错有很大帮助的哦
- 咨询内容: 本帖最后由 hql123 于 2012-9-17 08:38 编辑
1. 日内交易,全局变量初始值只赋一次,以后由开仓控制,我用了:
If(BarStatus == 0)
{
Setglobalvar(1,1);
Setglobalvar(2,1);
}
If (MarketPosition<>1 )
{
myEntryMoreSignal1 = GetGlobalVar(1)==1;
if (myEntrySignal1 and myEntryMoreSignal1)
{
myEntryPrice=Open+MinPoint;
Buy(lots,myEntryPrice);
SetGlobalVar(1,0);
setglobalvar(2,1);
}
}
else if (MarketPosition<>-1 )
{
myEntryMoreSignal2 = GetGlobalVar(2)==1;
if (myEntrySignal2 and myEntryMoreSignal2 )
{
myEntryPrice=Open-MinPoint;
SellShort(lots,myEntryPrice);
SetGlobalVar(2,0);
SetGlobalVar(1,1);
}
}
为什么交易信号不出来?
想做到:开多仓后不再加多仓,多仓平后不能再次开多仓,但可以开空仓;开空仓情况同。
如果用
If(BarsSinceentry == 0)
{
Setglobalvar(1,1);
Setglobalvar(2,1);
}
可以出现交易信号,但可能多次对全局变量赋初始值。
请版主不吝赐教! - TB技术人员: 本帖最后由 hql123 于 2012-9-17 09:01 编辑
(StartBarTime<Time*1000000) && (Time*1000000<CloseBarTime) - TB客服: 这样既然是历史测试,就不需要全局变量控制了吧,序列变量就够了额。
第二个问题是因为currenttime是系统时间,time才是K线时间 - 网友回复:
alex647l 发表于 2012-9-17 08:59
这样既然是历史测试,就不需要全局变量控制了吧,序列变量就够了额。
第二个问题是因为currenttime是系统时 ...
谢谢!如果不是历史测试,应该如何赋值,请赐教! - 网友回复:
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 262069696 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容