 |
L0123
資深會員

註冊日期: Mar 2004
來 自: 彰化 海口郎
文章數量: 400 |
引用: 最初由 alanpaul 發表
感謝回覆, 但是問題應該是出在FLAG的初始值上面...
小弟這兩天試著先用Variable: FLAG=0; 宣告, 程式是可以跑, 但是一旦condition XXX or YYY 成立但成交的condion尚不成立時, FLAG本來不應該歸0, 但是實際上卻被歸0了, 像這樣:
Variable: FLAG=0;
FLAG := IF(XXX, 1, IF(YYY,-1), FLAG);
SHORTCONDITION:= IF(FLAG=1 AND AAA, 1, 0);
LONGCONDITION:= IF(FLAG=-1 AND BBB, 1, 0);
FLAG:= IF(SHORTCONDITION or LONGCONDITION, 0, FLAG);
難道奇狐在每一個週期都讀一次Variable初始值, 而沒有把前一週期的Variable值留下? 試著用
FLAG:= IF(XXX, 1, IF(YYY, -1, REF(FLAG,1));
也不行呀!
頭痛!
您實際的問題偶不知道,偶用您敘述的方式寫出類似您要的,看看是否可以套用
//原始的程式是要在一個指標成立後, 把旗號設出, 然後等另一個指標成立後再成立買賣訊號:
M6:ma(C,6),COLORGREEN;
M12:ma(C,12),COLORMAGENTA;
A01:=CROSS(C,M6);//一個指標成立後, 把旗號設出
DRAWICON(A01,L,6),PXDN15;
A02:=CROSS(C,M12);//另一個指標成立
買訊:=A01 and A02;//2個指標相與成立後再成立買賣訊號
DRAWTEXT(買訊,L,'買'),COLORGREEN,PXDN30;
|
|
向版主報告此篇 |  |
|
2007-09-02 09:42 |
|
|
|  |
 |
L0123
資深會員

註冊日期: Mar 2004
來 自: 彰化 海口郎
文章數量: 400 |
前面寫法經RUN之後, 發現缺失 ,現更正如下:
//原始的程式是要在一個指標成立後, 把旗號設出, 然後等另一個指標成立後再成立買賣訊號:
M6:ma(C,6),COLORGREEN;
M12:ma(C,12),COLORMAGENTA;
A01:=CROSS(C,M6);//一個指標成立後, 把旗號設出
A11:=CROSS(A01,0.5);
DRAWICON(A01,L,6),PXDN15;
A02:=CROSS(C,M12);//另一個指標成立後再成立買賣訊號
A12:=CROSS(A02,0.5);
買訊:=A11 and A12;//2個指數相與成立後再成立買賣訊號
DRAWTEXT(買訊,L,'買'),COLORRED,PXDN30;
S01:=CROSS(M6,C);
S11:=CROSS(S01,0.5);
DRAWICON(S01,H,7),PXUP30;
S02:=CROSS(M12,C);
S12:=CROSS(S02,0.5);
賣訊:=S11 and S12;
DRAWTEXT(S12,H,'賣'),COLORGREEN,PXUP60;
|
|
向版主報告此篇 |  |
|
2007-09-02 19:58 |
|
|
|  |
 |
L0123
資深會員

註冊日期: Mar 2004
來 自: 彰化 海口郎
文章數量: 400 |
再更正,過程寫法應該正確了。
//原始的程式是要在一個指標成立後, 把旗號設出, 然後等另一個指標成立後再成立買賣訊號:
M6:ma(C,6),COLORGREEN;
M12:ma(C,12),COLORMAGENTA;
A01:=CROSS(C,M6);//一個指標成立後, 把旗號設出
A02:=IF(C>M6,1,0);
DRAWICON(A01,L,6),PXDN15;
A11:=CROSS(C,M12);//另一個指標成立後再成立買賣訊號
A12:=IF(C>M12,1,0);
B:=A02=1 and A12=1;//2個指數相與成立後再成立買賣訊號
買訊:=CROSS(B,0.5);
DRAWTEXT(買訊,L,'買'),COLORRED,PXDN30;
S01:=CROSS(M6,C);
S02:=IF(C<M6,-1,0);
DRAWICON(S01,H,7),PXUP30;
S11:=CROSS(M12,C);
S12:=IF(C<M12,-1,0);
S:=S02=-1 and S12=-1;
賣訊:=CROSS(S,0.5);
DRAWTEXT(賣訊,H,'賣'),COLORGREEN,PXUP60;
|
|
向版主報告此篇 |  |
|
2007-09-02 22:17 |
|
|
|  |
 |
alpha
資深會員
註冊日期: Oct 2006
來 自:
文章數量: 225 |
感覺你是想要這個
偶猜的 ~~~
=============================
FLAG := IF(XXX, 1, IF(YYY,-1, 0) );
上一個旗標 := ref(FLAG, barslast(FLAG) );
SHORTCONDITION:= IF( 上一個旗標 = 1 AND AAA, 1, 0);
LONGCONDITION:= IF( 上一個旗標 = -1 AND BBB, 1, 0);
__________________
偶而是不是也感覺有些老
像個大人般的戀愛
有時心情糟
請你相信我在你身邊別忘了
|
|
向版主報告此篇 |  |
|
2007-09-02 23:25 |
|
|
|  |
 |
alanpaul
初級會員
註冊日期: Aug 2007
來 自:
文章數量: 4 |
引用: 最初由 cgjj 發表
建議您把您想要做的東西說明白
不要給HTS程式碼
(因為不同程式語言,運算的機制可能有很大差別)
這樣大家比較好幫您!
謝謝版大指示...
目前設計上的想法是一個指標成立後, 再等另一個指標成立時, 才成立交易條件
所以並沒法把所有指標條件寫在同一個敘述中(也就是XXX -- 一段時間後Then --> AAA --> 成立訊號; 但是並不是XXX AND AAA同時成立時, 成立訊號)
|
|
向版主報告此篇 |  |
|
2007-09-03 08:40 |
|
|
|  |
 |
alanpaul
初級會員
註冊日期: Aug 2007
來 自:
文章數量: 4 |
引用: 最初由 alpha 發表
感覺你是想要這個
偶猜的 ~~~
=============================
FLAG := IF(XXX, 1, IF(YYY,-1, 0) );
上一個旗標 := ref(FLAG, barslast(FLAG) );
SHORTCONDITION:= IF( 上一個旗標 = 1 AND AAA, 1, 0);
LONGCONDITION:= IF( 上一個旗標 = -1 AND BBB, 1, 0);
沒錯! 這個寫法OK!
接下來就是ShortCondition 或 LongCondition成立後, Flag歸零的問題了
|
|
向版主報告此篇 |  |
|
2007-09-03 14:08 |
|
|
|  |
 |
alpha
資深會員
註冊日期: Oct 2006
來 自:
文章數量: 225 |
根據前面提的 , 猜測HTS 中你用的
FLAG , SHORTCONDITION , LONGCONDITION 這三個變數 應該都是 "單值" 變數
如果真是單值變數 , 表示 HTS 可能具備 "靜態變數" 這種東西
對於奇狐 "應該不需要 歸零 Falg" 這個步驟 ,
======================================
FLAG := IF(XXX, 1, IF(YYY,-1, 0) );
上一個旗標 := ref(FLAG, barslast(FLAG) );
SHORTCONDITION:= IF( 上一個旗標 = 1 AND AAA, 1, 0);
LONGCONDITION := IF( 上一個旗標 = -1 AND BBB, 1, 0);
S1 := barslast(SHORTCONDITION);
L1 := barslast(LONGCONDITION);
SHORTCONDITION : L1 > S1 ;
LONGCONDITION : S1 < L1;
FLAG * 3 ;
__________________
偶而是不是也感覺有些老
像個大人般的戀愛
有時心情糟
請你相信我在你身邊別忘了
|
|
向版主報告此篇 |  |
|
2007-09-03 16:17 |
|
|
|  |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|