奇狐社區論壇 總頁數 (2): [1] 2 »
在這個頁面顯示本主題全部的 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%時 且 虧損 且 買賣訊號未出現

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



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


全部時間均為台灣時間, 現在時間為03:03 總頁數 (2): [1] 2 »
在這個頁面顯示本主題全部的 22 個文章


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

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