用策略雷達達成上漲x點買進;低於成本y點出場 (適用逐筆洗價)

  •   3.1K 
  • 最後發表   dean60061  2020 十一月 02
dean60061 發文於   2020/07/07

大家好:

分享如何用策略雷達,達成上漲x點買進;低於成本y點出場

提供給大家參考與切磋

注意事項:

1. 請先使用模擬交易測試,沒問題在操作實單

2. 有進場策略,也要有停損停利配套喔!

3. 注意風險,絕不凹單

 

程式概念如下:

1. 策略雷達分為兩個策略(進場策略、停損出場策略)撰寫於同一腳本

2. input 宣告參數: 「買進賣出訊號」、「k棒上漲點數」、「跌破成本多少停損」

3. var 宣告變數: 「bcost」紀錄買進成本價

 

策略雷達 上漲x點_買進   內容屬性設定:

 

策略雷達 上漲x點_買進   下單設定:

 

策略雷達 低於成本y點_停損出場 內容屬性設定:

 

策略雷達 低於成本y點_停損出場 下單設定:

警示腳本範例程式碼:

 

input:_BuyOrSell(1,"1進場,2出場"),gprice(30),slost(50);
var:intrabarpersist bcost(0);
value1 = close- open;

SetInputName(1, "進場=1;出場=2");
SetInputName(2, "上漲點數");
SetInputName(3, "跌破點數");



if value1 >= gprice and bcost = 0 then 
begin 
    bcost = close;
    if _BuyOrSell=1 then Ret=1;
end;

if bcost-slost > close and bcost <> 0 then 
begin
    bcost = 0;
    if _BuyOrSell=2 then ret=1;
end;

 ------

2020 9/8

這邊要補充介紹一下在逐筆洗價的情況下,

因為在逐筆洗價模式下,

會發生一根k棒 會有許多次觸發的現象

而影響到我們的開關 bcost 產生有時紀錄不到的問題

因此要在var的地方 編寫intrabarpersist 來在單根k棒只記錄一次

這樣就能避免問題了

關於intrabarpersist的介紹 可以參考此 連結

 

排序方式: 標準 | 最新
skypan 發文於   2020/07/09

請問dean60061大,你這個策略如何解??

如果我要用在突破"移動平均數3"進場時,怎麼把你的策略公式帶進,不是很了解這個策略的用法。

dean60061 發文於   2020/07/10

skypan 大 您好

 

這個腳本主要的概念是

1. 設立一個自己的進場策略 ex  value1 >= gprice

2. 以bcost來判斷我目前有沒有持有倉位

3. _buyorsell 建立買進賣出訊號

 

「進場策略」如果要改成移動平均主要是修改下面這段

if value1 >= gprice and bcost = 0 then

您可以 設定兩條不同的移動平均線  

例如

value100= average(close,20);

value99=average(close,5);

if value99 cross over value100 and bcost = 0 then

當短線均線向上突破長線均線時 進場。

無情卻慈悲 發文於   2020/08/10

我想請問一下,買進建立部位時,您的「策略安全設定」是設定下單最多「1次」,那麼如果程式自動平倉後又遇上新的訊號這樣仍會再建立第2次的部位嗎?感謝!

dean60061 發文於   2020/08/12

hi 無情卻慈悲

這樣只會觸發一次喔!

老王837 發文於   2020/11/02

請問dean60061大,我有用這個方式建構了一個買進跟賣出共用一個腳本, 但是執行回測時

這個bcost在賣出的策略執行時都是0 , 不知道你有遇過這樣情況嗎?

發表回覆
Close