開拓者 TB如何為全局變量賦初值?
作者:開拓者 TB 來源:cxh99.com 發布時間:2012年11月27日
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是系統時 ...
謝謝!如果不是歷史測試,應該如何賦值,請賜教!
- 網友回復: