奇狐社區論壇
在這個頁面顯示本主題全部的 22 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 請教if用法? (http://www.chiefox.com.tw/bbs/showthread.php?threadid=9184)


由 kway 在 2008-02-16 16:11 發表:

請教if用法?

VARIABLE:bsjg=0;//因為if then需要整數
buy:=IF(bsbs and bs00 and bs01,1,0);
//bsjg:=IF(buy,1,0);加入此行會產生語法錯誤,bsjg變化成非整數
IF bsjg=1 THEN
begin
end
ELSE
begin
end;

請問有解決方法嗎?


由 cgjj 在 2008-02-18 08:49 發表:

回覆: 請教if用法?

引用:
最初由 kway 發表
VARIABLE:bsjg=0;//因為if then需要整數
buy:=IF(bsbs and bs00 and bs01,1,0);
//bsjg:=IF(buy,1,0);加入此行會產生語法錯誤,bsjg變化成非整數
IF bsjg=1 THEN
begin
end
ELSE
begin
end;

請問有解決方法嗎?



這樣的 if....then 用法是錯的
1.if ... then 不是需要整數, 而是必需為單值(不可為數列)
 它可為字串比較或數值比較

2.問題在於 buy 為數列
 您的 bsbs 或 bs00 或 bs01 其中至少有一個變數為數列
 且計算完後 buy 仍為數列

請見這的教學(按次序看)
http://www.chiefox.com.tw/bbs/forum...p?s=&forumid=46


由 kway 在 2008-02-19 15:25 發表:

IF(A,B,C);
如果A成立則B,否則C
一般用於邏輯判斷的結果大部分都取真或假(或是單值)
奇狐公式非常好用
若可以將IF(A,B,C)求得的結果只為單值而不變成列數
那真的是會更有智慧
因為交易系統一定要判斷前值,而前值幾乎都是列數
求得的結果無法用於IF .. THEN 或其他邏輯控制
希望奇狐可以提供一種方法可以判斷前值的結果只為單數的工具
感激不盡∼


由 cgjj 在 2008-02-19 15:44 發表:

引用:
最初由 kway 發表
IF(A,B,C);
如果A成立則B,否則A
一般用於邏輯判斷的結果大部分都取真或假(或是單值)
奇狐公式非常好用
若可以將IF(A,B,C)求得的結果只為單值而不變成列數
那真的是會更有智慧
因為交易系統一定要判斷前值,而前值幾乎都是列數
求得的結果無法用於IF .. THEN 或其他邏輯控制
希望奇狐可以提供一種方法可以判斷前值的結果只為單數的工具
感激不盡∼



您誤解嚕
IF(A,B,C) 算出來的結果
可以是單值也可以是數列唷

要視您帶入的運算元素為何?

您再仔細看看我說的這句話:
您的 bsbs 或 bs00 或 bs01 其中至少有一個變數為數列


由 cgjj 在 2008-02-19 15:51 發表:

舉個例子

收盤價 Close 即是數列 型態
Close 中存的是每一日的收盤價, 故其不是單值

以下均為數列:
CC:Close;
CC:Close*5;
CC:Close+5;
VV:Vol*Close;

以下均為單值:
A:5;
A:=10;
A:=CC[n];
datacount;
datatype;


由 kway 在 2008-02-19 16:20 發表:

bsbs:=IF(time>91500 and time<133500,1,0);
bs00:=IF(MA2>REF(MA2,1)and MA3>REF(MA3,1)and MA4>REF(MA4,1),1,0);
ss00:=IF(MA2<REF(MA2,1)and MA3<REF(MA3,1)and MA4<REF(MA4,1),1,0);
bs01:=IF(MA1>REF(MA1,1),1,0);
ss01:=IF(MA1<REF(MA1,1),1,0);
buy:=IF(bsbs and bs00 and bs01,1,0);
sell:=IF(bsbs and ss00 and ss01,1,0);
如此當買賣條件成立時
要再細分2種以上條件時才確立買賣或停損
請問有何方法?


由 cgjj 在 2008-02-19 16:27 發表:

引用:
最初由 kway 發表
bsbs:=IF(time>91500 and time<133500,1,0);
bs00:=IF(MA2>REF(MA2,1)and MA3>REF(MA3,1)and MA4>REF(MA4,1),1,0);
ss00:=IF(MA2<REF(MA2,1)and MA3<REF(MA3,1)and MA4<REF(MA4,1),1,0);
bs01:=IF(MA1>REF(MA1,1),1,0);
ss01:=IF(MA1<REF(MA1,1),1,0);
buy:=IF(bsbs and bs00 and bs01,1,0);
sell:=IF(bsbs and ss00 and ss01,1,0);
如此當買賣條件成立時
要再細分2種以上條件時才確立買賣或停損
請問有何方法?



麻煩舉個例子完整說明, 這樣比較好講解
謝謝!


由 kway 在 2008-02-19 16:37 發表:

範例:
當買進成立且實際成交
當賣出成立可是與買進價格相差不大則忽略
當第2次賣出訊號還沒到而已經觸及停損時賣出


由 cgjj 在 2008-02-19 16:47 發表:

引用:
最初由 kway 發表
範例:
當買進成立且實際成交
當賣出成立可是與買進價格相差不大則忽略
當第2次賣出訊號還沒到而已經觸及停損時賣出



您寫的這三句讓人很難回答您的問題

請給數量化明確邏輯的條件
如 條件為 C>0 , 價格相大多少% ....
要明確不可有含糊之條件
否則難以協助您


由 kway 在 2008-02-19 16:50 發表:



想過濾過多的買賣訊號


由 kway 在 2008-02-19 16:57 發表:



有過濾掉
但還是不很理想
若可用if..then應該就可解決一切難題


由 cgjj 在 2008-02-19 17:10 發表:

引用:
最初由 kway 發表


想過濾過多的買賣訊號



訊號過濾方法很多
若只是單純濾掉重覆訊號
可參考這的方式
http://www.chiefox.com.tw/bbs/showt...=&threadid=8887


由 cgjj 在 2008-02-19 17:20 發表:

引用:
最初由 kway 發表


有過濾掉
但還是不很理想
若可用if..then應該就可解決一切難題



很抱歉
這樣問的方式, 我真的...
不知從那裡下手, 來協助您解決問題
奇狐很多的運算用IF(A,B,C) 就可完成,不太需 if ... then

奇狐中 if ... then .... 命令常常搭配迴圈使用

您的問題應是觀念不清
教學請您務必按次序依序看完
那次序有特別安排過, 請依序學習
若您用跳著看必定會混淆不清

於 奇狐社區論壇 > 指標公式 > [進階教學] 中的這四項務必看完
01. 條件語句(判斷敘述)
02. 終止公式執行 EXIT
03. 循環語句(迴圈敘述) FOR
04. 數列運算(陣列運算)


看完後您的問題或許就不再是問題嚕


由 kway 在 2008-02-19 17:20 發表:

買進條件:
1.24均價↑ 且 60均價↑
2.6均價由↓往↑時

賣出條件:
1.24均價↓ 且 60均價↓
2.6均價由↑往↓時

平倉條件:
1.賣出平倉:6均價由↑往↓時
2.買進平倉:6均價由↓往↑時

例外條件:
1.當前一買賣價差小於0.3%時忽略
2.當前一買賣價差大於0.6%時 且 虧損 且 買賣訊號未出現 強制平倉

如此很簡單的想法
有請版主解惑?
感激不盡∼∼∼


由 cgjj 在 2008-02-19 17:29 發表:

引用:
最初由 kway 發表
買進條件:
1.24均價↑ 且 60均價↑
2.6均價由↓往↑時

賣出條件:
1.24均價↓ 且 60均價↓
2.6均價由↑往↓時

平倉條件:
1.賣出平倉:6均價由↑往↓時
2.買進平倉:6均價由↓往↑時

例外條件:
1.當前一買賣價差小於0.3%時忽略
2.當前一買賣價差大於0.6%時 且 虧損 且 買賣訊號未出現

如此很簡單的想法
有請版主解惑?
感激不盡∼∼∼



好....問題來嚕
例如:
 買進您那兩條件是 [兩者都要成立] 還是[其中之一成立即可]
 其他條件也是同上問題
另外
 [前一買賣價差] 這個有點奇怪, 您指的是什麼?


由 kway 在 2008-02-19 17:35 發表:

買進條件:要同時成立
1.24均價↑ 且 60均價↑
2.6均價由↓往↑時

賣出條件:要同時成立
1.24均價↓ 且 60均價↓
2.6均價由↑往↓時

平倉條件:分別成立,決定於目前有做多或放空
1.賣出平倉:6均價由↑往↓時.....目前有多單
2.買進平倉:6均價由↓往↑時.....目前有空單

例外條件:與目前持有的多單或空單的價差
1.當前一買賣價差小於0.3%時忽略..雖然平倉條件成立,但是不執行平倉
2.當前一買賣價差大於0.6%時 且 虧損 且 買賣訊號未出現..雖然平倉條件未成立,但是要強制執行平倉,因為是之前(1)忽略平倉而造成的


由 cgjj 在 2008-02-20 09:29 發表:

引用:
最初由 kway 發表
買進條件:要同時成立
1.24均價↑ 且 60均價↑
2.6均價由↓往↑時

賣出條件:要同時成立
1.24均價↓ 且 60均價↓
2.6均價由↑往↓時

平倉條件:分別成立,決定於目前有做多或放空
1.賣出平倉:6均價由↑往↓時.....目前有多單
2.買進平倉:6均價由↓往↑時.....目前有空單

例外條件:與目前持有的多單或空單的價差
1.當前一買賣價差小於0.3%時忽略..雖然平倉條件成立,但是不執行平倉
2.當前一買賣價差大於0.6%時 且 虧損 且 買賣訊號未出現..雖然平倉條件未成立,但是要強制執行平倉,因為是之前(1)忽略平倉而造成的



您說的 當前一買賣價差小於0.3%
是 進場價和目前最新價 的價差嗎?


由 kway 在 2008-02-20 15:07 發表:

引用:
您說的 當前一買賣價差小於0.3%
是 進場價和目前最新價 的價差嗎?

YES
謝謝總版主
有解嗎?


由 cgjj 在 2008-02-20 16:15 發表:

整理一下

做多進場條件:要同時成立
1.24均價↑ 且 60均價↑
2.6均價由↓往↑時

做空進場條件:要同時成立
1.24均價↓ 且 60均價↓
2.6均價由↑往↓時

做多平倉條件:6均價由↑往↓時.....目前有多單

做空平倉條件:6均價由↓往↑時.....目前有空單

這樣對吧?

還有 6均價由↓往↑
指的是 6均價由下往上穿過收盤價 嗎?


由 kway 在 2008-02-20 20:02 發表:

做多進場條件:要同時成立
1.24均價↑ 且 60均價↑
2.6均價由↓往↑時

做空進場條件:要同時成立
1.24均價↓ 且 60均價↓
2.6均價由↑往↓時

做多平倉條件:6均價由↑往↓時.....目前有多單 且價差大於0.03%

做空平倉條件:6均價由↓往↑時.....目前有空單 且價差大於0.03%

6均價由↓往↑
指的是 6均價,前1K下跌,今K上漲(方向反轉的意思)


由 cgjj 在 2008-02-21 11:45 發表:

引用:
最初由 kway 發表
做多進場條件:要同時成立
1.24均價↑ 且 60均價↑
2.6均價由↓往↑時

做空進場條件:要同時成立
1.24均價↓ 且 60均價↓
2.6均價由↑往↓時

做多平倉條件:6均價由↑往↓時.....目前有多單 且價差大於0.03%

做空平倉條件:6均價由↓往↑時.....目前有空單 且價差大於0.03%

6均價由↓往↑
指的是 6均價,前1K下跌,今K上漲(方向反轉的意思)



原碼:

ma24
:ma(c,24);
ma60:ma(c,60);
ma06:ma(c,6);
多進1:=ma24>ref(ma24,1) and ma60>ref(ma60,1);
多進2:=ref(ma60,2)>ref(ma60,1) and ma60>ref(ma60,1);

多進:多進1 and 多進2 linethick0;
多平:cross(c,ma06linethick0;
CK:=多進-多平;
CK:=ref(CK,barslast(CK<>0));
CK:=if(CK<>ref(CK,1) or barpos=lbound(CK),CK,0);
多進:=CK=1;
x:=SETLBOUND(多平,lbound(BARSSINCE(多進)));
多進價:=ref(c,barslast(多進));
價差:=((c-多進價)/多進價)*100;
多平:=多平 and 價差>0.3 or 價差<-0.6;
CK:=多進-多平;
CK:=ref(CK,barslast(CK<>0));
CK:=if(CK<>ref(CK,1) or barpos=lbound(CK),CK,0);
多進:=CK=1;
多平:=CK=-1;
DRAWICON(多進,L,1pxdn15;
DRAWICON(多平,H,2pxup45;


由 kway 在 2008-02-21 20:24 發表:


謝謝版大指點
我已經完成想要的了
勝率多少?????
等些時日才能知道


全部時間均為台灣時間, 現在時間為00:52
在這個頁面顯示本主題全部的 22 個文章


Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.