![]() |
在這個頁面顯示本主題全部的 6 個文章 |
奇狐社區論壇 (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=12370)
[求救]有主圖均線與副圖指標依據的程式要怎麼寫?
我已經改好DMI的指標了,可是因為要主副圖一起參照,所以,
我就只能乾瞪眼了!有人可以幫忙嗎?感激不盡!!
附圖檔如上和DMI指標程式碼---非當沖單
指標:15分鐘K線,ma20,DMI指標(14天,正DI與負DI即可)
名稱:DMI均線指標
策略說明:
1.買進時機:(當 正DI>負DI 且 (成交價-MA20)/MA20<0.015 ),市價買進,並開始執行a b c d e
====>此時賣出時機(平倉)
a. 正DI<負DI ----------->回到買進時機和賣出時機
b. 正DI>48 ----------->停單並於後第七根K棒後,回到買進時機和賣出時機
c. 負DI<11 ----------->停單並於後第七根K棒後,回到買進時機和賣出時機
d. 15分K連續六根紅K ----------->停單並於後第七根K棒後,回到買進時機和賣出時機
e. (成交價-MA20)/MA20 >0.015 ----------->停單並於後第七根K棒後,回到買進時機和賣出時機
2.賣出時機:(當 正DI<負DI 且 (MA20-成交價)/MA20<0.015 ),市價賣出,並開始執行a b c d e
======>此時買進時機(平倉)
a. 正DI>負DI ----------->回到買進時機和賣出時機
b. 負DI>48 ----------->停單並於後第七根K棒後,回到買進時機和賣出時機
c. 正DI<11 ----------->停單並於後第七根K棒後,回到買進時機和賣出時機
d. 15分K連續六根黑K ----------->停單並於後第七根K棒後,回到買進時機和賣出時機
e. (MA20-成交價)/MA20 >0.015 ----------->停單並於後第七根K棒後,回到買進時機和賣出時機
---------------------------------------------------------------------
PS:附上DMI的公式程式碼:
//DMI公式
{Directional Movement Indicator , DMI , 動向指標 修正算法}
TR:=SMA(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N,1);
HD:=HIGH-REF(HIGH,1);
LD:=REF(LOW,1)-LOW;
DMP:=SMA(IF(HD>0 AND HD>LD,HD,0),N,1);
DMM:=SMA(IF(LD>0 AND LD>HD,LD,0),N,1);
正DI:DMP*100/TR,coloryellow;
負DI:DMM*100/TR,color8470FF;
//均線20
MA20:MA(C,20);
-------------------------------------------------------------------------
回覆: [求救]有主圖均線與副圖指標依據的程式要怎麼寫?
引用:
最初由 king220.shih 發表
我已經改好DMI的指標了,可是因為要主副圖一起參照,所以,
我就只能乾瞪眼了!有人可以幫忙嗎?感激不盡!!
![]()
附圖檔如上和DMI指標程式碼---非當沖單
指標:15分鐘K線,ma20,DMI指標(14天,正DI與負DI即可)
名稱:DMI均線指標
策略說明:
1.買進時機:(當 正DI>負DI 且 (成交價-MA20)/MA20<0.015 ),市價買進,並開始執行a b c d e
====>此時賣出時機(平倉)
a. 正DI<負DI ----------->回到買進時機和賣出時機
b. 正DI>48 ----------->停單並於後第七根K棒後,回到買進時機和賣出時機
c. 負DI<11 ----------->停單並於後第七根K棒後,回到買進時機和賣出時機
d. 15分K連續六根紅K ----------->停單並於後第七根K棒後,回到買進時機和賣出時機
e. (成交價-MA20)/MA20 >0.015 ----------->停單並於後第七根K棒後,回到買進時機和賣出時機
2.賣出時機:(當 正DI<負DI 且 (MA20-成交價)/MA20<0.015 ),市價賣出,並開始執行a b c d e
======>此時買進時機(平倉)
a. 正DI>負DI ----------->回到買進時機和賣出時機
b. 負DI>48 ----------->停單並於後第七根K棒後,回到買進時機和賣出時機
c. 正DI<11 ----------->停單並於後第七根K棒後,回到買進時機和賣出時機
d. 15分K連續六根黑K ----------->停單並於後第七根K棒後,回到買進時機和賣出時機
e. (MA20-成交價)/MA20 >0.015 ----------->停單並於後第七根K棒後,回到買進時機和賣出時機
---------------------------------------------------------------------
PS:附上DMI的公式程式碼:
//DMI公式
{Directional Movement Indicator , DMI , 動向指標 修正算法}
TR:=SMA(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N,1);
HD:=HIGH-REF(HIGH,1);
LD:=REF(LOW,1)-LOW;
DMP:=SMA(IF(HD>0 AND HD>LD,HD,0),N,1);
DMM:=SMA(IF(LD>0 AND LD>HD,LD,0),N,1);
正DI:DMP*100/TR,coloryellow;
負DI:DMM*100/TR,color8470FF;
//均線20
MA20:MA(C,20);
-------------------------------------------------------------------------
cgjj總版主 安安
結果奇怪沒有關係,我只是想要知道這樣的條件要如何敘述,
並且有沒有邏輯上的問題,尤其是停單並於後第七根K棒後,回
到買進時機和賣出時機,這樣的邏輯要如何用程式語言表達?
寫程式本身是種樂趣,比做單快樂很多,所以會有許多的邏輯
想法想知道要如何表達,這支程式的重點,只是想要了解主副
圖同時引用參照的寫作語法,與要如何在出場後讓程式觀望七
根後,再回到買進與賣出時機。
如果邏輯有誤可以修改,如果只是結果奇怪,那沒有關係,寫
出來後再慢慢修改即可。我有買技術指標通論,但是書中沒有
詳述這類的狀況,所以只好上來求助總版主,我也有去問過程
式設計的老師,但是老師說,他沒有證券期貨的專業,所以也
愛莫能助。
最後,我想還是只能求助總版主再個寫範例來讓我研究研究了
!感激不盡!甘溫啦!
引用:
最初由 king220.shih 發表
cgjj總版主 安安
結果奇怪沒有關係,我只是想要知道這樣的條件要如何敘述,
並且有沒有邏輯上的問題,尤其是停單並於後第七根K棒後,回
到買進時機和賣出時機,這樣的邏輯要如何用程式語言表達?
寫程式本身是種樂趣,比做單快樂很多,所以會有許多的邏輯
想法想知道要如何表達,這支程式的重點,只是想要了解主副
圖同時引用參照的寫作語法,與要如何在出場後讓程式觀望七
根後,再回到買進與賣出時機。
如果邏輯有誤可以修改,如果只是結果奇怪,那沒有關係,寫
出來後再慢慢修改即可。我有買技術指標通論,但是書中沒有
詳述這類的狀況,所以只好上來求助總版主,我也有去問過程
式設計的老師,但是老師說,他沒有證券期貨的專業,所以也
愛莫能助。
最後,我想還是只能求助總版主再個寫範例來讓我研究研究了
!感激不盡!甘溫啦!
原碼:
TRR:=SMA(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N,1);
HD:=HIGH-REF(HIGH,1);
LD:=REF(LOW,1)-LOW;
DMP:=SMA(IF(HD>0 AND HD>LD,HD,0),N,1);
DMM:=SMA(IF(LD>0 AND LD>HD,LD,0),N,1);
正DI:=DMP*100/TRR,coloryellow;
負DI:=DMM*100/TRR,color8470FF;
MA20:=MA(C,20);
多s:=正DI>負DI and (C-MA20)/MA20<0.015 or barpos=0;
空s:=正DI<負DI and (MA20-C)/MA20<0.015 or barpos=0;
多a:=正DI<負DI or barpos=0;
多b:=正DI>48;
多c:=負DI<11;
多d:=sum(C>O,6)=6;
多e:=(C-MA20)/MA20>0.015;
多z:=多b or 多c or 多d or 多e or barpos=0;
空a:=正DI>負DI or barpos=0;
空b:=負DI>48;
空c:=正DI<11;
空d:=sum(C<O,6)=6;
空e:=(MA20-C)/MA20>0.015;
空z:=空b or 空c or 空d or 空e or barpos=0;
進向:多s-空s linethick0;
出向a:多a-空a linethick0;
出向z:多z-空z linethick0;
多空:=0; //1.多, -1.空, 0.無
進出:c*0; //1.為多單進場, 2.為多單平倉, -1.為空單賣出, -2.為空單回補, 0.無
LockN:=0;
for i= 1 to datacount do begin
if 多空=0 and LockN=0 then begin
多空:=進向[i]; 進出[i]:=多空;
end else if 多空<>0 then begin
if 多空=出向a[i] then begin
進出[i]:=多空*2; 多空:=0;
end else if 多空=出向z[i] then begin
進出[i]:=多空*2; 多空:=0; LockN:=7;
end;
end;
if LockN>0 then LockN:=LockN-1;
end;
哇!感謝,又有功課可以做了。感激不盡。
週休二日就來研究這些原碼,希望可以再增
加功力。原來寫程式是會上癮的。甘溫啦!
原來時間控制可以用這種語法
if LockN>0 then LockN:=LockN-1;
果然沒有寫不出來的程式,感謝囉!
| 全部時間均為台灣時間, 現在時間為04:03 | 在這個頁面顯示本主題全部的 6 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.