![]() |
在這個頁面顯示本主題全部的 34 個文章 |
奇狐社區論壇 (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=12376)
[求救]當沖公式寫法[多空交易範例]
請版大協助指導謝謝!!
五分K的週期:
ACK0:=TIME>=133501 or BARPOS=0; //尾盤不留單,強制出場。
AB01:=條件一 or條件二; //多進。
ABZ1:=條件三 or條件四; //多停利觸價出場,出場後保持0倉位,必須等多進或空進條件。
ABZ2:=條件五 or條件六; //多控損觸價出場,出場後保持0倉位,必須等多進或空進條件。
AS01:=條件七 or條件八; //空進。
ASZ1:=條件九 or條件十; //空停利觸價出場,出場後保持0倉位,必須等多進或空進條件。
ASZ2:=條件十一 or條件十二; //空控損觸價出場,出場後保持0倉位,必須等多進或空進條件。
註明﹕
【多出】的條件 (1)ABZ1 (2)ABZ2 (3)AS01 (4)ACK0
【空出】的條件 (1)ASZ1 (2)ASZ2 (3)AB01 (4)ACK0
回覆: [求救]當沖公式寫法
引用:
最初由 L0123 發表
請版大協助指導謝謝!!
五分K的週期:
ACK0:=TIME>=133501 or BARPOS=0; //尾盤不留單,強制出場。
AB01:=條件一 or條件二; //多進。
ABZ1:=條件三 or條件四; //多停利觸價出場,出場後保持0倉位,必須等多進或空進條件。
ABZ2:=條件五 or條件六; //多控損觸價出場,出場後保持0倉位,必須等多進或空進條件。
AS01:=條件七 or條件八; //空進。
ASZ1:=條件九 or條件十; //空停利觸價出場,出場後保持0倉位,必須等多進或空進條件。
ASZ2:=條件十一 or條件十二; //空控損觸價出場,出場後保持0倉位,必須等多進或空進條件。
註明﹕
【多出】的條件 (1)ABZ1 (2)ABZ2 (3)AS01 (4)ACK0
【空出】的條件 (1)ASZ1 (2)ASZ2 (3)AB01 (4)ACK0
回覆: 回覆: [求救]當沖公式寫法
引用:
最初由 cgjj 發表
您的條件會不會有, 多方持單和空方持單, 相互重疊的區域?
也就是說
在多方持單的情況下, 若遇 [空進] 訊號, 多方要出場嗎?
答: Yes
則反手做空,
答: No
一種選擇為: 忽略本次 [空進] 訊號 (多空不會重疊區域)
另一種選擇為: 多方仍持單, 空方也進場 (多空會有重疊區域,避險)
原碼:
強出:=ACK0 or barpos=0;
多進:=AB01 or barpos=0;
多出1:=ABZ1 or barpos=0;
多出2:=ABZ2 or barpos=0;
空進:=AS01 or barpos=0;
空出1:=ASZ1 or barpos=0;
空出2:=ASZ1 or barpos=0;
進出:C*0;
多空:=0; //1.多 -1.空 0.無
for i = 1 to datacount do begin
if 多空=0 and 強出[i]=0 then begin
多空:=多進[i]-空進[i]; 進出[i]:=多空;
end else if 多空<>0 then begin
if 強出[i] then begin
進出[i]:=多空*4; 多空:=0;
end else begin
if 多空=多出1[i] or 多空=-空出1[i] then begin
進出[i]:=多空*2; 多空:=0;
end else if 多空=多出2[i] or 多空=-空出2[i] then begin
進出[i]:=多空*3; 多空:=0;
end else if 多空=空進[i] or 多空=-多進[i] then begin
進出[i]:=多空*5; 多空:=-多空;
end;
end;
end;
end;
偶套用試試看。
這程式架構相信很多狐友都可套用 謝謝總版主,辛苦您了,感恩喔!!!
引用:
最初由 L0123 發表
偶套用試試看。
這程式架構相信很多狐友都可套用 謝謝總版主,辛苦您了,感恩喔!!!
親愛的總版主:
正在套用測試中,想將[進出] 這變數值【5.多轉空 改為 -5.多轉空】 及 【-5.空轉多 改為 5. 空轉多】。再麻煩 總版主費神,拜託。
原碼如下﹕
[進出] 這變數值代表意義如下:
1.多進, 2.多停利, 3.多控損, 4.多強制 5.多轉空 // 改成 5.空轉多
-1.空進, -2.空停利, -3.空控損, -4.空強制 -5.空轉多 // 改成 -5.多轉空
引用:
最初由 L0123 發表
親愛的總版主:
正在套用測試中,想將[進出] 這變數值【5.多轉空 改為 -5.多轉空】 及 【-5.空轉多 改為 5. 空轉多】。再麻煩 總版主費神,拜託。
原碼如下﹕
[進出] 這變數值代表意義如下:
1.多進, 2.多停利, 3.多控損, 4.多強制 5.多轉空 // 改成 5.空轉多
-1.空進, -2.空停利, -3.空控損, -4.空強制 -5.空轉多 // 改成 -5.多轉空
引用:
最初由 cgjj 發表
將
進出[i]:=多空*5;
改為
進出[i]:=-多空*5;
就可囉![]()
為了讓速度加快不得不加緊腳步研讀奇狐的新語法
請教版主依此例
強出:=ACK0 or barpos=0;
多進:=AB01 or barpos=0;
多出1:=ABZ1 or barpos=0;
多出2:=ABZ2 or barpos=0;
空進:=AS01 or barpos=0;
空出1:=ASZ1 or barpos=0;
空出2:=ASZ1 or barpos=0;
若增改為
強出:=ACK0 or barpos=0;
多進:=多的條件 or barpos=0;;//多兩口
多出1:=賺50點 or barpos=0;//多先出一口
多出2:=賠50點 or barpos=0;//多先出一口
多出3:=多全出的條件 or barpos=0;//多全出
空進:=空的條件 or barpos=0;//空兩口
空出1:=賺50點 or barpos=0;//空先出一口
空出2:=賠50點 or barpos=0;//空先出一口
空出3:=空全出的條件 or barpos=0;//空全出
停利與停損觸價即成立
如何陳述
謝謝
小弟看了一下
版主的回覆用法,應該是以「收盤或下一根開盤時,就是C」作為進出價位;而不是以「觸價當時的價位喔」。
若是這樣針對「觸價停損、利」時,回測時就得注意了。
不知是否如此,有請版主解惑了。
祝均安
__________________
永遠學習、學習永遠
善為傳家寶
忍為積德門
引用:
最初由 阿酷 發表
小弟看了一下
版主的回覆用法,應該是以「收盤或下一根開盤時,就是C」作為進出價位;而不是以「觸價當時的價位喔」。
若是這樣針對「觸價停損、利」時,回測時就得注意了。
不知是否如此,有請版主解惑了。
祝均安
引用:
最初由 hwyhon 發表
版主代入應會以
多出1:=賺50點 or barpos=0;//H-多進>=50多先出一口
多出2:=賠50點 or barpos=0;//L-多進<=-50多先出一口
空出1空出2亦是
另強出與進場與條件3的出場則已自設條件
回測需再自行寫式子
因此只要帶入回圈的算法正確回測不會有問題的啦
__________________
永遠學習、學習永遠
善為傳家寶
忍為積德門
此主題版主的回覆範例是正確的
是L0123兄沒將停利說明清楚
而您是誤解與誤套
當版主新起我新提的部份成為範例時您就不會有疑問了
引用:
最初由 hwyhon 發表
此主題版主的回覆範例是正確的
是L0123兄沒將停利說明清楚
而您是誤解與誤套
當版主新起我新提的部份成為範例時您就不會有疑問了
__________________
永遠學習、學習永遠
善為傳家寶
忍為積德門
條件與策略不能亂套入的
我提的問題一些條件與迴圈判斷與主題差別很多
是必須有請版主重新造句的
新語法沒有辦不到的事
但版主的迴圈範例並不是用來亂套的
差之毫釐失去之千里
版主未回覆前就先別預設立場吧
__________________
就是發蓊梨(ㄛㄥˇ ㄌㄞˊ) 程式交易網站
[教學]指標公式及程式交易系統撰寫 [代工]
學會指標策略程式化的撰寫,將可讓你不再盲目投下辛苦賺來的血汗錢
要知道交易的策略或交易的模式長期執行下確實可獲利
交易才有意義的.否則寧可不交易
引用:
最初由 阿酷 發表
hwyhon兄您好:
......................................省略
這段裡的開頭:
進出:C*0;
進出:C*0;
這裡是用C(收盤價)下去代的
所以就您的前段套入正確的觸價(H、L)雖是正確,但後段的迴圈所跑出來就不同了,有套用的朋友們把點位相加減檢查一下就知正確與否了。
就這樣了,我也本著實事求是的想法,提醒一下朋友「再度確認、檢視」而已,必竟要知其所以然且寫程式系統,都要秉著細心檢驗的心態為之才行,交易不是兒戲,認真點總是必要的。
以上祝均安。
建議
不同策略的條件, 請另開主題發問吧
這樣比較不會讓人容易看的霧煞煞
引用:
最初由 cgjj 發表
呵呵, 誤解大囉
進出:C*0; //這裡並非是用收盤價下去帶的唷
注意看 是 C*0 不是只有 C
這是為了取得一個與K棒同範圍的零值數列
例如K棒總用有 100 根
那麼 進出:C*0;
會得到一個 零值數列(共100根)
也就是說
進出[1]:=0;
進出[2]:=0;
:
進出[100]:=0;
與收盤價無任何關係啦
只是借用它(收盤價)來創造與K棒同範圍的零值數列
因為 Close 這個數列範圍, 一定與K棒同範圍
公試僅跑這行, 一切就明白嚕
AA: C*0;
AA會是與K棒同範圍的零值數列
算是取巧的寫法啦
__________________
永遠學習、學習永遠
善為傳家寶
忍為積德門
引用:
最初由 阿酷 發表
cgjj版主您好:對不起我誤解了
那若是如hwyhon兄所說的以H、L帶入,配合您的範例,是有「盤中即時觸價」進出的效果嗎?
這是我的主要疑惑,請解惑非常謝謝您了。
祝均安。
引用:
最初由 cgjj 發表
基本上與配不配合範例沒有關係
舉例來說, 當下這一根K棒尚未完成時:
此根K棒收盤價 Close 可能會上下震蕩
此根K棒最高價 High 則只會往上, 不會往下
此根K棒最低價 Low 則只會往下, 不會往上
換言之
若N值為固定不動的值, 則當下這一根K棒尚未完成時:
此根K棒 C>N 可能有時成立, 有時又不成立
此根K棒 H>N 一但成立, 就固定成立了, 不會中途變不成立
此根K棒 L<N 一但成立, 就固定成立了, 不會中途變不成立
評測有評測歷史的考量, 下單有下單當下的考量
規則決定一切結果, 也決定能否處理
__________________
永遠學習、學習永遠
善為傳家寶
忍為積德門
引用:
最初由 阿酷 發表
謝謝版主說明:
您說的重點我都清楚
容我舉例說明:
最初由 L0123 發表
請版大協助指導謝謝!!
五分K的週期:
ACK0:=TIME>=133501 or BARPOS=0; //尾盤不留單,強制出場。
AB01:=條件一 or條件二; //多進。
ABZ1:=條件三 or條件四; //多停利觸價出場,出場後保持0倉位,必須等多進或空進條件。
ABZ2:=條件五 or條件六; //多控損觸價出場,出場後保持0倉位,必須等多進或空進條件。
AS01:=條件七 or條件八; //空進。
ASZ1:=條件九 or條件十; //空停利觸價出場,出場後保持0倉位,必須等多進或空進條件。
ASZ2:=條件十一 or條件十二; //空控損觸價出場,出場後保持0倉位,必須等多進或空進條件。
強出:=ACK0 or barpos=0;
多進:=AB01 or barpos=0;
多出1:=ABZ1 or barpos=0;
多出2:=ABZ2 or barpos=0;
空進:=AS01 or barpos=0;
空出1:=ASZ1 or barpos=0;
空出2:=ASZ1 or barpos=0;
進出:C*0;
多空:=0; //1.多 -1.空 0.無
for i = 1 to datacount do begin
if 多空=0 and 強出[i]=0 then begin
多空:=多進[i]-空進[i]; 進出[i]:=多空;
end else if 多空<>0 then begin
if 強出[i] then begin
進出[i]:=多空*4; 多空:=0;
end else begin
if 多空=多出1[i] or 多空=-空出1[i] then begin
進出[i]:=多空*2; 多空:=0;
end else if 多空=多出2[i] or 多空=-空出2[i] then begin
進出[i]:=多空*3; 多空:=0;
end else if 多空=空進[i] or 多空=-多進[i] then begin
進出[i]:=多空*5; 多空:=-多空;
end;
end;
end;
end;
以上是網友最先請教之問題,加上版主您接續的解答。
那我的問題是:
若:ABZ1或ABZ2或ASZ1或ASZ2這四個條件中都有「觸價」的條件設定,而版主您最後的答覆,此根K棒 H>N 一但成立, 就固定成立了, 不會中途變不成立
此根K棒 L<N 一但成立, 就固定成立了, 不會中途變不成立;意思是說若我把ABZ1或ABZ2或ASZ1或ASZ2這四個地方都以H、L來突過、跌破「固定數值例50點」的停損、利值,「再來」配合套入您的回覆
進出:C*0;
多空:=0; //1.多 -1.空 0.無
for i = 1 to datacount do begin
if 多空=0 and 強出[i]=0 then begin
多空:=多進[i]-空進[i]; 進出[i]:=多空;
end else if 多空<>0 then begin
if 強出[i] then begin
進出[i]:=多空*4; 多空:=0;
end else begin
if 多空=多出1[i] or 多空=-空出1[i] then begin
進出[i]:=多空*2; 多空:=0;
end else if 多空=多出2[i] or 多空=-空出2[i] then begin
進出[i]:=多空*3; 多空:=0;
end else if 多空=空進[i] or 多空=-多進[i] then begin
進出[i]:=多空*5; 多空:=-多空;
end;
end;
end;
end;
這段以後,就可以有「觸價」的功能了嗎?
以上再度打擾,請見諒。
祝均安。
謝謝版主的解惑了,非常感謝。
版主的寫法,非我所熟悉的故有如此多的疑慮,還請見諒,但也因為不熟悉其所以然,所以我還是用我自已的方法,因為自已能事後的檢視與驗證,故用起來也較安心;在這也互勉一下網友,寫系統或將來漸進到自動交易的層面時,事事求是謹慎驗證是必要的,這是純風險問題。
再次謝謝版主,祝大家均安。
__________________
永遠學習、學習永遠
善為傳家寶
忍為積德門
一急忘了存檔
對不起總版主!急著走人竟忘了存檔,回到家一看.....傻住了!
再請總版主幫忙!
多進:=條件1;
多出:=條件2;
空進:=條件3;
空出:=條件4;
強出:=TIME=134000;
套入以下迴圈!
另外要得知出每次進出盈虧,要如何處理?
進出:C*0;
多空:=0; //1.多 -1.空 0.無
for i = 1 to datacount do begin
if 多空=0 and 強出[i]=0 then begin
多空:=多進[i]-空進[i]; 進出[i]:=多空;
end else if 多空<>0 then begin
if 強出[i] then begin
進出[i]:=多空*4; 多空:=0;
end else begin
if 多空=多出1[i] or 多空=-空出1[i] then begin
進出[i]:=多空*2; 多空:=0;
end else if 多空=多出2[i] or 多空=-空出2[i] then begin
進出[i]:=多空*3; 多空:=0;
end else if 多空=空進[i] or 多空=-多進[i] then begin
進出[i]:=多空*5; 多空:=-多空;
end;
end;
end;
end;
回覆: 一急忘了存檔
引用:
最初由 Markchu7 發表
對不起總版主!急著走人竟忘了存檔,回到家一看.....傻住了!
再請總版主幫忙!
多進:=條件1;
多出:=條件2;
空進:=條件3;
空出:=條件4;
強出:=TIME=134000;
套入以下迴圈!
另外要得知出每次進出盈虧,要如何處理?
進出:C*0;
多空:=0; //1.多 -1.空 0.無
for i = 1 to datacount do begin
if 多空=0 and 強出[i]=0 then begin
多空:=多進[i]-空進[i]; 進出[i]:=多空;
end else if 多空<>0 then begin
if 強出[i] then begin
進出[i]:=多空*4; 多空:=0;
end else begin
if 多空=多出1[i] or 多空=-空出1[i] then begin
進出[i]:=多空*2; 多空:=0;
end else if 多空=多出2[i] or 多空=-空出2[i] then begin
進出[i]:=多空*3; 多空:=0;
end else if 多空=空進[i] or 多空=-多進[i] then begin
進出[i]:=多空*5; 多空:=-多空;
end;
end;
end;
end;
原碼:
多進:=條件1 or barpos=0;
多出:=條件2 or barpos=0;
空進:=條件3 or barpos=0;
空出:=條件4 or barpos=0;
強出:=TIME=134000;
進出:C*0; CC:=C;
多空:=0; //1.多 -1.空 0.無
盈虧:c*0 linethick;
for i = 1 to datacount do begin
if 多空=0 and 強出[i]=0 then begin
多空:=多進[i]-空進[i]; 進出[i]:=多空;
if 多空<>0 then 進價:=CC[i];
end else if 多空<>0 then begin
盈虧[i]:=(CC[i]-進價)*多空;
if 強出[i] then begin
進出[i]:=多空*4; 多空:=0;
end else begin
if 多空=多出[i] or 多空=-空出[i] then begin
進出[i]:=多空*2; 多空:=0;
end else if 多空=空進[i] or 多空=-多進[i] then begin
進出[i]:=多空*3; 多空:=-多空;
end;
end;
end;
end;
感謝總版主指導!來去試試!
請問總版主:進出3=多出反守作空在同一根k棒?我發現應該是進出3的情況下呈現出來的結果卻是前一根k棒多出後下一根k棒再空進耶!可否再幫我看一下!
引用:
最初由 Markchu7 發表
請問總版主:進出3=多出反守作空在同一根k棒?我發現應該是進出3的情況下呈現出來的結果卻是前一根k棒多出後下一根k棒再空進耶!可否再幫我看一下!
另外
前面我漏了一部份
這行
進出[i]:=多空*3; 多空:=-多空;
要改為
進出[i]:=多空*3; 多空:=-多空; 進價:=CC[i];
謝謝!我再試試!
請問如果要限制交易次數條件該怎麼寫呢?
版大您好:
依此當沖範例,請問如果要限制交易次數條件該怎麼寫呢?
例如條件:1天最多交易3次(來回算1次),次數達到就停止不再進場。
謝謝!!!
回覆: 請問如果要限制交易次數條件該怎麼寫呢?
引用:
最初由 sync 發表
版大您好:
依此當沖範例,請問如果要限制交易次數條件該怎麼寫呢?
例如條件:1天最多交易3次(來回算1次),次數達到就停止不再進場。
謝謝!!!
引用:
最初由 sync 發表
原碼:
強出:=TIME>=132000;
限進:=TIME>=130000;
多進:=B1 and 強出=0 and 限進=0 or barpos=0;
多出:=多補 or barpos=0;
空進:=S1 and 強出=0 and 限進=0 or barpos=0;
空出:=空補 or barpos=0;
....................................................略
//[進出] 這變數值代表意義如下:
//1.多單進場, 2.多單出場, 3.多控利出, 4.多控損出, 5.強制出場
//-1.空單進場,-2.空單出場,-3.空控利出, -4.空控損出, -5.強制出場
^^
全部時間均為台灣時間, 現在時間為12:31 | 在這個頁面顯示本主題全部的 34 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.