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

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- [求救]~指標跑不出來~ (http://www.chiefox.com.tw/bbs/showthread.php?threadid=8304)


由 newmerq5478 在 2007-08-26 00:43 發表:

[求救]~指標跑不出來~

我使用此段程式,我使用的是60分鐘線他產生的指標只會在2006/6/13 到 2007/8/01 在2006/6/13之前的指標就不會出現了..有哪為大大可以解決此問題ㄋ?是因為使用到某些資料,因資料不夠多..所以造成更之前的指標產生不出來..(個人猜測不知道對不對)


BUY:= (IF(BARSLAST(open-close>95)>10,(
IF((ref(close,0)-ref(close,5)>0),1,0)) and (
IF((ref(close,0)-ref(close,10)>0),1,0)),
IF(REF(HIGH,BARSLAST(open-close>95))<close,1,0))) ;

ENTERLONG:BUY ;


由 hy911 在 2007-08-26 16:51 發表:

有未来函数,请慎重啊


由 newmerq5478 在 2007-08-26 20:48 發表:

我都只是對之前已產生的數據作判斷..跟您所說的未來函數...好像有點不太一樣..可以的話請您RUN 看看..謝謝.希望有大大能解開我的疑惑..


由 newmerq5478 在 2007-08-30 09:55 發表:

[求救]~求助..請大大解除我的疑惑~

我使用此段程式,我使用的是60分鐘線他產生的指標只會在2006/6/13 到 2007/8/01 在2006/6/13之前的指標就不會出現了..有哪為大大可以解決此問題ㄋ?是因為使用到某些資料,因資料不夠多..所以造成更之前的指標產生不出來..(個人猜測不知道對不對)


BUY:= (IF(BARSLAST(open-close>95)>10,(
IF((ref(close,0)-ref(close,5)>0),1,0)) and (
IF((ref(close,0)-ref(close,10)>0),1,0)),
IF(REF(HIGH,BARSLAST(open-close>95))<close,1,0))) ;

ENTERLONG:BUY ;


由 cgjj 在 2007-08-30 10:07 發表:

您用公式看這兩行結果就知道原因了
BARSLAST(open-close>95)
BARSLAST(open-close>1)


由 newmerq5478 在 2007-08-30 10:29 發表:

我有試用過了..如版主所表示的..但是什麼樣的原因會造成這樣!
請大大說明一下..解除小弟我的疑惑

一個是BARSLAST(open-close>1)
另一個是BARSLAST(open-close>95)

我試到BARSLAST(open-close>75) 還會有訊號,但試到76訊號就不見了!請大大解說一下..了解原理之後我才可以進一步避免自己錯誤的使用此程式..謝謝


由 cgjj 在 2007-08-30 10:59 發表:

BARSLAST(open-close>95) 算出的結果
其第一個有效數據
是位於 (open-close)>95 條件第一次成立的位置

您單獨跑這行
(open-close)>95
看看成立的起點位於何處

該處之前的數據, 就是您看不到的範圍


由 newmerq5478 在 2007-08-30 11:08 發表:

感謝版主大大解除我的疑惑!!我知道我的錯誤了..我會再做修正..也感謝大大盡心的為我們解除問題..誠心的感謝!!


由 newmerq5478 在 2007-08-30 14:09 發表:

版大再請教一下!如果我是使用60分鐘線..我搜尋當前週期到前10個週期是否有
出現 (open-close>95) 如果有,我想取得出現的那各週期 距離當前週期的週期數..還有他的開盤價..是要使用哪各指令會比較好
BARSLAST這各不能用了..還有哪各可以使用ㄋ


由 cgjj 在 2007-08-30 14:25 發表:

BARSLAST 並非不能用呀
看您如何處理嚕

舉個例子
以您前面的公式來說, 可這樣寫:

BUY:(IF(BARSLAST(open-close>95)>10,(
IF((ref(close,0)-ref(close,5)>0),1,0)) and (
IF((ref(close,0)-ref(close,10)>0),1,0)),
IF(REF(HIGH,BARSLAST(open-close>95))<close,1,0)));

BUY:=if(barpos<lbound(BUY),0,BUY);
//將前面不成立的部份均設為 0 值


由 newmerq5478 在 2007-08-30 17:23 發表:

版大..我有copy您寫的程式下去RUN...好像是不行的..也就是說跟之前依樣!


由 cgjj 在 2007-08-30 17:37 發表:

引用:
最初由 newmerq5478 發表
版大..我有copy您寫的程式下去RUN...好像是不行的..也就是說跟之前依樣!


不一樣吧
之前的 BUY 前面為無效數據看不到
現在的 BUY 前面為有效數據(但值為零值)


由 newmerq5478 在 2007-08-30 17:43 發表:

下面是我RUN的程式..就跟之前的一樣..再2006/6月5號訊號就不見了!請大大看看




BUY:=(IF(BARSLAST(open-close>95)>10,(
IF((ref(close,0)-ref(close,5)>0),1,0)) and (
IF((ref(close,0)-ref(close,10)>0),1,0)),
IF(REF(HIGH,BARSLAST(open-close>95))<close,1,0)));

BUY:=if(barpos<lbound(BUY),0,BUY);
//將前面不成立的部份均設為 0 值


ENTERLONG:BUY ;


由 cgjj 在 2007-08-30 17:49 發表:

不是訊號不見了啦
是因為您給的條件, 該區域本來就無訊號啦

您把您想要做的詳細描述一下好嚕
這樣大家比較好幫您


由 newmerq5478 在 2007-08-30 18:18 發表:

恩..我想要的條件是..在尾盤也就是134500的時候
1.當前週期 K>D
2.當前週期 macd>0
3.當前週期到前6個週期之中有出現 K 穿越 D
4.當前週期到前6個週期之中有出現 macd 穿越 0

上述4個條件成立時 搭配

5.當前週期到前10個週期之中有出現 open-close>95 (長黑棒)
此時當前週期的 "收盤價" 要大於 open-close>95 (長黑棒) 的收盤價
成立時才會產生作多的指標

當前週期到前10個週期之中沒有出現 open-close>95 (長黑棒)時,
此時當前週期的 "收盤價" 要大於 前一日 跟 前兩日 的 "收盤價"
才會產生作出的指標





BUY:=(IF(T=134500,1,0)) and (IF(k>D,1,0)) and (IF(macd>0,1,0))
and ( ANY(CROSS(k,d) ,6)) and (ANY(CROSS(macd,0),6))
and (IF(BARSLAST(open-close>95)>10,(
IF((ref(close,0)-ref(close,5)>0),1,0)) and (
IF((ref(close,0)-ref(close,10)>0),1,0)),
IF(REF(open,BARSLAST(open-close>95))<close,1,0)));

BUY:=if(barpos<lbound(BUY),0,BUY);
//將前面不成立的部份均設為 0 值


ENTERLONG:BUY ;


由 newmerq5478 在 2007-08-30 18:20 發表:

更正..是要大於 open-close>95 (長黑棒) 的 "開盤價"


5.當前週期到前10個週期之中有出現 open-close>95 (長黑棒)
此時當前週期的 "收盤價" 要大於 open-close>95 (長黑棒) 的收盤價
成立時才會產生作多的指標


由 cgjj 在 2007-08-31 10:35 發表:

按您的定義
在 open-close>95 條件第一次成立之前
都不會有作多的訊號

這點還是跟前面的 BUY 狀況是一模一樣的呀
因為您給的條件, 該區域本來就無作多訊號啦


由 newmerq5478 在 2007-08-31 10:58 發表:

大大我想要的"第 一次成立之前"這個弄掉.
因為我看書只找到BARSLAST 這個函數是可以找出長黑棒距離當前週期數..所以目前來看問題出在 "第一次成立之前"
如果我想把 "第一次成立之前"去掉
該使用哪個函數


由 cgjj 在 2007-08-31 11:19 發表:

前面已回答了, 就是:
BUY:=if(barpos<lbound(BUY),0,BUY);
//將前面不成立的部份均設為 0 值

您可能沒理解清楚
問題不在於程式
而是在於您定義的條件

那區域 open-close>95 這條件根本就不會成立
您又要求需搭配 open-close>95 此條件
程式無論如何寫
那區域永遠都不會有作多的訊號

您可能要想想
open-close>95
這長黑棒的定義是否太過嚴苛了


由 L0123 在 2007-08-31 14:29 發表:

引用:
最初由 cgjj 發表
您可能要想想
open-close>95
這長黑棒的定義是否太過嚴苛了 [/B]


建議將 95 改為浮動常數

XN:=ma(H,60)-ma(L,60);
open-close>XN;
試試看如何?


由 L0123 在 2007-08-31 14:45 發表:

引用:
最初由 L0123 發表
建議將 95 改為浮動常數

XN:=ma(H,60)-ma(L,60);
open-close>XN;
試試看如何?



或者
XN:=(ref(ma(H,120),1)-(ref(ma(L,120),1))*0.681;
open-close>XN;
試試看如何?


由 newmerq5478 在 2007-09-04 19:41 發表:

我已經利用這個解決問題了...感謝大家的回覆!

IF(ANY(open-close>95,11)


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


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

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