![]() |
在這個頁面顯示本主題全部的 17 個文章 |
奇狐社區論壇 (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=12272)
[求救]請問有成交量依據的當沖公式寫法
抱歉!剛剛學習寫奇狐。
可能問題有點簡單∼><
---------------------------------------
五分K的週期:
若是前一根K棒收紅並出量>4000口,則出現空單賣出,並以本根K棒的收盤價+30點作為空單停損。
停利則為前一根K棒收黑並出量>3000口,則空單回補。
若是上一根K棒收黑並出量>4000口,則出現多單買進,並以本根K棒的收盤價-30點作為多單停損。
停利則為前一根K棒收紅並出量>3000口,則多單平倉。
尾盤13:25不管多空單,一律回補!不留倉!
---------------------------------------
這樣的定義不知道是否正確無誤。有無邏輯上的缺陷?
因為剛剛學習寫交易策略,腦筋一片空白,只會寫翻多或翻空的均線操作,想到這種有停損的,就完全沒有概念了。
希望各位前輩們可以提供意見。感恩!
回覆: [求救]請問有成交量依據的當沖公式寫法
引用:
最初由 king220.shih 發表
抱歉!剛剛學習寫奇狐。
可能問題有點簡單∼><
---------------------------------------
五分K的週期:
若是前一根K棒收紅並出量>4000口,則出現空單賣出,並以本根K棒的收盤價+30點作為空單停損。
停利則為前一根K棒收黑並出量>3000口,則空單回補。
若是上一根K棒收黑並出量>4000口,則出現多單買進,並以本根K棒的收盤價-30點作為多單停損。
停利則為前一根K棒收紅並出量>3000口,則多單平倉。
尾盤13:25不管多空單,一律回補!不留倉!
---------------------------------------
這樣的定義不知道是否正確無誤。有無邏輯上的缺陷?
因為剛剛學習寫交易策略,腦筋一片空白,只會寫翻多或翻空的均線操作,想到這種有停損的,就完全沒有概念了。
希望各位前輩們可以提供意見。感恩!
感謝總版主回答。
那就是我的定義還不夠清楚,我再想想,讓定義更明確一些。
或許我現在的問題是無法明確的定義出交易策略,難怪都想不
出來要怎麼寫。
還是總版主可否賜教一二,好讓我的邏輯理清一些,比如要如
何定義,才不會出現你所說的狀況。我要的東西很簡單,就是
上漲出量放空,下跌出量作多,然後守停損。
由於對於程式語言不甚了解,不太知道電腦能做些什麼,又不
能做些什麼,以前老師曾經說過,要學好程式語言,要先了解
電腦的邏輯,從電腦的角度去看事情,這樣就容易多了。偏偏
又不是很了解電腦的運作,所以想寫一些簡單的操作程式,來
釐清自己的邏輯。
引用:
最初由 king220.shih 發表
感謝總版主回答。
那就是我的定義還不夠清楚,我再想想,讓定義更明確一些。
或許我現在的問題是無法明確的定義出交易策略,難怪都想不
出來要怎麼寫。
還是總版主可否賜教一二,好讓我的邏輯理清一些,比如要如
何定義,才不會出現你所說的狀況。我要的東西很簡單,就是
上漲出量放空,下跌出量作多,然後守停損。
由於對於程式語言不甚了解,不太知道電腦能做些什麼,又不
能做些什麼,以前老師曾經說過,要學好程式語言,要先了解
電腦的邏輯,從電腦的角度去看事情,這樣就容易多了。偏偏
又不是很了解電腦的運作,所以想寫一些簡單的操作程式,來
釐清自己的邏輯。
引用:
最初由 cgjj 發表
[多單買進]後當前仍持倉, 若此刻發生[空單賣出] 條件
方法三:
多單若仍持倉當中, 則忽略本次[空單賣出] 訊號
設計出發點不同, 思考可能就不同
以上僅供參考
引用:
最初由 king220.shih 發表
對啦!就是方法三,如果有多單在手,要如何忽略[空單賣出]訊號。
然後守著停損與停利。
重點就是忽略。
原碼:
ZAry:=C*0; CC:=C;
S30:=time>=132500 or barpos=0; //強制出場
S11:=ref(c<o and v>4000,1) and S30=0 or barpos=0; //多進
S12:=ref(c>o and v>3000,1) or barpos=0; //多出
S21:=ref(c>o and v>4000,1) and S30=0 or barpos=0; //空進
S22:=ref(c<o and v>3000,1) or barpos=0; //空出
盈虧:ZAry linethick0;
進出:ZAry;
多空:=0; //1.多 -1.空 0.無
做價:=0; 停損:=30;
for i = lbound(ZAry) to datacount do begin
if 多空=0 then begin
多空:=S11[i]-S21[i]; 進出[i]:=多空;
if 多空<>0 then 做價:=CC[i];
end else if 多空<>0 then begin
盈虧[i]:=(CC[i]-做價)*多空;
CKO:=S12[i]-S22[i];
if CKO=多空 then begin
進出[i]:=CKO*2; 多空:=0;
end else if S30[i] then begin
進出[i]:=多空*3; 多空:=0;
end else if 盈虧[i]<-停損 then begin
進出[i]:=多空*4; 多空:=0;
end;
end;
end;
感謝總版主^^
我這幾天都很認真的在爬文
發現我想要的東西,你以前都已經有回應過了
我也都有一一將程式碼裝入奇狐作測試
真的很不錯,只是對於程式碼有看沒有懂
就算是有中文說明也不知所云
再加油囉!努力學習!
請教總版主,關於 barpos=0 的用法
------------------------
BARPOS
別名: 數據位置
所屬類別: 時間函數 參數數量: 0
函數返回當前是第幾根K線。
對於日線數據就表示從上市到現在總共有多少交易日。
用法:
BARPOS
--------------------------
我有查過BARPOS的函數用法
意思是數據位置,那barpos=0 是不是代表今日的第一根K棒?
又怎需要在time>=132500後面又加上or barpos=0 ??
真有些不太懂耶?能否請總版主簡要說明一下。
感激不盡!
Barpos=1 是歷史第1根K棒
Barpos=2 是歷史第2根K棒
不會有 Barpos=0 的這種情況發生(永遠不成立)
or barpos=0
這動作會讓數據起始有效位置從1開始, 又能保持原數據
這方法僅適用於 [儲存邏輯判斷的數列]
也就是只有 1 和 0 成立與不成立的這種結果的數列
算是一種取巧的方法
您把下面這兩行, 各別跑跑看比較一下
去觀察歷史頭20根K棒的值, 就可了解差異
MA(c,10)>C; //數據有效起始位置為10
MA(c,10)>C or barpos=0; //數據有效起始位置為1
讓數據起始有效位置都自 1 開始, 是為了方便迴圈計算
不會因為 [數據有效起始位置] , 而去取用到無效數據造成問題
也不會因為 [數據有效起始位置] , 造成少算到某部份
感謝總版主回答。
沒有總版主的解釋,真是想破頭殼都想不出來。
抱歉!我的進度比較慢,還有一個問題要請教總版主。
在後面的
進出[i]:=CKO*2
進出[i]:=多空*3
進出[i]:=多空*4
以上*2*3*4的用意是什麼?
引用:
最初由 king220.shih 發表
![]()
抱歉!我的進度比較慢,還有一個問題要請教總版主。
在後面的
進出[i]:=CKO*2
進出[i]:=多空*3
進出[i]:=多空*4
以上*2*3*4的用意是什麼?
感謝總版主的回答,這樣我就懂了!
我再繼續研究,有問題再來請教,甘溫喔!
再請教總版主:
迴圈和IF的語法我大致上看懂了。
那如果想要在進出訊號時加上箭頭的圖示與點位標示,
又該如何加入DRAWICON與DRAWNUMBER的函數呢?
這樣才能在K線圖上一目暸然。
上面的問題我已解決,已經可以看到箭頭和數字,
但是問題又出來了,秀出箭頭和數字讓系統變的很慢。
怎麼會這樣呢?
引用:
最初由 king220.shih 發表
上面的問題我已解決,已經可以看到箭頭和數字,
但是問題又出來了,秀出箭頭和數字讓系統變的很慢。
怎麼會這樣呢?
ZAry:=C*0; CC:=C;
S30:=time>=132500 or barpos=0; //強制出場
S11:=ref(c<o and v>4000,1) and S30=0 or barpos=0; //多進
S12:=ref(c>o and v<1000,1) or barpos=0; //多出
S21:=ref(c>o and v>4000,1) and S30=0 or barpos=0; //空進
S22:=ref(c<o and v<1000,1) or barpos=0; //空出
盈虧:ZAry linethick0;
進出:ZAry;
多空:=0; //1.多 -1.空 0.無
做價:=0; 停損:=30;
for i = lbound(ZAry) to datacount do begin
if 多空=0 then begin
多空:=S11[i]-S21[i]; 進出[i]:=多空;
if 多空<>0 then 做價:=CC[i];
end else if 多空<>0 then begin
盈虧[i]:=(CC[i]-做價)*多空;
CKO:=S12[i]-S22[i];
if CKO=多空 then begin
進出[i]:=CKO*2; 多空:=0;
end else if S30[i] then begin
進出[i]:=多空*3; 多空:=0;
end else if 盈虧[i]<-停損 then begin
進出[i]:=多空*4; 多空:=0;
end;
end;
end;
//[進出] 這變數值代表意義如下:
//1.為多單進場, 2.為多單平倉, 3.為多單強制平倉, 4.為多單控損平倉
//-1.為空單賣出,-2.為空單回補,-3.為空單強制回補,-4.為空單控損回補
DRAWICON(進出=1,L,4),PXDN40;
DRAWNUMBER(進出=1,L,O,0),PXDN70,COLORRED,ALIGN0;
DRAWTEXT(進出=1,L,'多單進場'),PXDN100,COLORYELLOW,ALIGN0;
DRAWICON(進出=2,H,5),PXUP40;
DRAWNUMBER(進出=2,H,O,0),PXUP70,COLORGREEN,ALIGN0;
DRAWTEXT(進出=2,H,'多單平倉'),PXUP100,COLORYELLOW,ALIGN0;
DRAWICON(進出=3,H,5),PXUP40;
DRAWNUMBER(進出=3,H,O,0),PXUP70,COLORGREEN,ALIGN0;
DRAWTEXT(進出=3,H,'多單強制平倉'),PXUP100,COLORYELLOW,ALIGN0;
DRAWICON(進出=4,H,5),PXUP40;
DRAWNUMBER(進出=4,H,O,0),PXUP70,COLORGREEN,ALIGN0;
DRAWTEXT(進出=4,H,'多單控損平倉'),PXUP100,COLORYELLOW,ALIGN0;
DRAWICON(進出=-1,H,5),PXUP40;
DRAWNUMBER(進出=-1,H,O,0),PXUP70,COLORGREEN,ALIGN0;
DRAWTEXT(進出=-1,H,'空單賣出'),PXUP100,COLORYELLOW,ALIGN0;
DRAWICON(進出=-2,L,4),PXDN40;
DRAWNUMBER(進出=-2,L,O,0),PXDN70,COLORRED,ALIGN0;
DRAWTEXT(進出=-2,L,'空單回補'),PXDN100,COLORYELLOW,ALIGN0;
DRAWICON(進出=-3,L,4),PXDN40;
DRAWNUMBER(進出=-3,L,O,0),PXDN70,COLORRED,ALIGN0;
DRAWTEXT(進出=-3,L,'空單強制回補'),PXDN100,COLORYELLOW,ALIGN0;
DRAWICON(進出=-4,L,4),PXDN40;
DRAWNUMBER(進出=-4,L,O,0),PXDN70,COLORRED,ALIGN0;
DRAWTEXT(進出=-4,L,'空單控損回補'),PXDN100,COLORYELLOW,ALIGN0;
--------------------------------------------------------------------------------------
嗯!沒錯!是我將繪圖函數置於迴圈之內,所以系統變的很慢,
我將函數放在迴圈之外,就OK了!^^(語法如上,並附上圖檔)
感謝!總版主一言驚醒夢中人,原來就是這麼簡單阿!
奇狐有讚喔!功能實在是有夠強大的。光是這個迴圈語法
,就可以寫出非常多的程式了!而且程式碼不用很多。
不知道TS和HTS有沒有這樣強大的功能,Array陣列,For迴圈,
IF流程控制。很貼近原始的程式語言。有程式設計基礎的人,
應該是如魚得水吧!
再次感謝總版主,我繼續練功去,不懂再來問。感激不盡^^!
| 全部時間均為台灣時間, 現在時間為21:43 | 在這個頁面顯示本主題全部的 17 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.