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

奇狐社區論壇 (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=12219)


由 tyh158 在 2009-09-27 15:07 發表:

[問題]如何記住訊號發出的價位?

請教:

在交易系統中寫公式
如果有三天a,b,c符合進場訊號
其中a這天發出紅色箭頭
假設固定停利為

A1:=ref(C,barslast(多進));
停利:=a1+a1*利潤;

但是b及c兩天也符合
這樣的寫法會將停利變成c這天的點位加固定利潤

有沒有辦法記住a這天的點位加固定利潤來當作出場的依據

謝謝


由 cgjj 在 2009-09-28 09:25 發表:

回覆: [問題]如何記住訊號發出的價位?

引用:
最初由 tyh158 發表
請教:

在交易系統中寫公式
如果有三天a,b,c符合進場訊號
其中a這天發出紅色箭頭
假設固定停利為

A1:=ref(C,barslast(多進));
停利:=a1+a1*利潤;

但是b及c兩天也符合
這樣的寫法會將停利變成c這天的點位加固定利潤

有沒有辦法記住a這天的點位加固定利潤來當作出場的依據

謝謝



基本上要處理為這樣
前一個訊號必須為出場訊號, 本次的進場訊號才視為有效訊號

除停利外還有其他出場訊號嗎?


由 tyh158 在 2009-09-28 20:28 發表:

版主:
我的股票交易邏輯如下
進場:月均價量同時往上進場
出場:1.固定停利 2.破季線3.低於20ma 10%

這樣多說明不知道是否夠清楚

謝謝你


由 cgjj 在 2009-09-29 12:12 發表:

引用:
最初由 tyh158 發表
版主:
我的股票交易邏輯如下
進場:月均價量同時往上進場
出場:1.固定停利 2.破季線3.低於20ma 10%

這樣多說明不知道是否夠清楚

謝謝你



跟據您說的:
進條件有一, 為: BB1
出條件有三, 依序為: SS1, SS2 ,SS3
請自行帶入這些個變數, 接後續處理
SS1 不需設定, 改設定 [利潤] 來控制處理

原碼:

BB1
:=BB1 or barpos=0;
SS2:=SS2 or barpos=0;
SS3:=SS3 or barpos=0;
UBS:=0CC:=C進價:=0;
BB:=C*0SS:=BB;
for 
i=1 to datacount do begin
  
if BB1[i]=and UBS=0 then begin
    BB
[i]:=1UBS:=1進價:=CC[i];
  
end else if UBS=1 then begin
    
if CC[i]>進價+進價*利潤 then begin
      SS
[i]:=1UBS:=0
    
end else if SS2[ithen begin
      SS
[i]:=2UBS:=0
    
end else if SS3[ithen begin
      SS
[i]:=3UBS:=0
    
end;
  
end;
end;

註:
BB=1 代表進場
SS>0 代表出場, 依出場狀況, 值為1-3


由 tyh158 在 2009-09-30 20:37 發表:

感謝版主的辛苦

有一個疑問?
BB:=C*0;
SS:=BB;

這兩行的程式作用為何?


Thanks


由 cgjj 在 2009-10-01 10:08 發表:

引用:
最初由 tyh158 發表
感謝版主的辛苦

有一個疑問?
BB:=C*0;
SS:=BB;

這兩行的程式作用為何?

Thanks



設置 BB 和 SS 為零值數列(數列長度與K棒數相等)
註: C 為 Close 數列, 將其乘上零, 就能達到我們目的


由 ecity2005 在 2010-05-30 22:24 發表:

不好意思, 小弟想再問一個簡單的問題,

BB1:=BB1 or barpos=0; 這一行代表的意思是什麼呢?

另外是否有辦法讓變數不要每個tick進來就歸零或重算, 而是會記住上次的數值的呢?

例如若我有一個變數叫HP, 用來記住目前的部位數, 但若090500進場, HP會被設為1, 但是091000若又不符合進場條件, 那我如何讓091000的HP亦為1呢? 因為090500進場的部位數尚未平倉.
謝謝!


由 cgjj 在 2010-05-31 09:29 發表:

引用:
最初由 ecity2005 發表
[B]不好意思, 小弟想再問一個簡單的問題,

BB1:=BB1 or barpos=0; 這一行代表的意思是什麼呢?



barpos=1 代表計算的K棒是歷史首根
barpos=2 代表計算的K棒是歷史第二根

barpos=0 這情況是永不發生的

or barpos=0 是一種取巧的寫法
有時數列有效起始位置, 未必等於1 (歷史首根)
可能會是自第n根開始才有效
or barpos=0 會讓無效的部份填零
經過 or barpos=0 數列起點就會變為自1 開始(歷史首根)

此種取巧寫法
僅適用於數列中僅有 0 與 1 兩種值的情況下


由 cgjj 在 2010-05-31 09:33 發表:

引用:
最初由 ecity2005 發表
另外是否有辦法讓變數不要每個tick進來就歸零或重算, 而是會記住上次的數值的呢?

例如若我有一個變數叫HP, 用來記住目前的部位數, 但若090500進場, HP會被設為1, 但是091000若又不符合進場條件, 那我如何讓091000的HP亦為1呢? 因為090500進場的部位數尚未平倉.
謝謝!



處理範例如下:

MA5:ma(c,5);
MA10:ma(c,10);
BB:=cross(MA5,MA10);
SS:=cross(MA10,MA5);
BS:BB-SS NOAXIS;
BS:=ref(BS,barslast(BS<>0)); //處理關鍵(取之前不為零的值)


由 ttnsh001 在 2010-06-05 14:14 發表:

引用:
最初由 cgjj 發表
處理範例如下:

MA5:ma(c,5);
MA10:ma(c,10);
BB:=cross(MA5,MA10);
SS:=cross(MA10,MA5);
BS:BB-SS NOAXIS;
BS:=ref(BS,barslast(BS<>0)); //處理關鍵(取之前不為零的值)



想請問版主,那如果此方式改成當沖(收盤:TT>=134200;)
時間到全部出掉,隔天訊號出來時重新進場,希望0的訊號一直維持到新的訊號進場,除了BS:=ref(BS,barslast(BS<>0)); 中的BS<>0改成BS. 還要改什麼呢?我的程式是多進二口,多利停一口,空進二口,空停利一口,尾盤全出掉,
BS:=多單進*2+多停利-空單進*2-空停利 NOAXIS;
BS:ref(BS,barslast(BS));


由 cgjj 在 2010-06-07 10:24 發表:

引用:
最初由 ttnsh001 發表
想請問版主,那如果此方式改成當沖(收盤:TT>=134200
時間到全部出掉,隔天訊號出來時重新進場,希望0的訊號一直維持到新的訊號進場,除了BS:=ref(BS,barslast(BS<>0)); 中的BS<>0改成BS. 還要改什麼呢?我的程式是多進二口,多利停一口,空進二口,空停利一口,尾盤全出掉,
BS:=多單進*2+多停利-空單進*2-空停利 NOAXIS;
BS:ref(BS,barslast(BS));



請參考此例的處理方法
http://www.chiefox.com.tw/bbs/showt...52512#post52512


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


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

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