利用百分比來計算移動停利

  •   1.1K 
  • 最後發表   雷達初心者  2021 十一月 04
雷達初心者 發文於   2021/06/22

想詢問有沒有利用百分比計算移動停利的範本,

能夠包含達到多少%後回檔多少%執行停利

  • 按讚來自於
  • roryccf
排序方式: 標準 | 最新
XQ小幫手 發文於   2021/11/04

Hello MT,

 

小幫手這邊測試不會有您說的問題,附上回測報告和print檔案。

這邊隨便取一筆交易來跟您解釋。

 

20200821.000000 100000.000000 424.000000 421.000000 412.580000 429.420000 

20200821.000000 110000.000000 425.500000 421.000000 412.580000 429.420000 

20200821.000000 120000.000000 426.000000 421.000000 412.580000 429.420000 

20200821.000000 130000.000000 424.500000 421.000000 412.580000 429.420000 

20200824.000000 90000.000000 431.500000 421.000000 422.870000 429.420000     <-

20200824.000000 100000.000000 429.000000 421.000000 422.870000 429.420000 

20200824.000000 110000.000000 429.000000 421.000000 422.870000 429.420000 

20200824.000000 120000.000000 430.500000 421.000000 422.870000 429.420000 

20200824.000000 130000.000000 428.000000 421.000000 422.870000 429.420000 

20200825.000000 90000.000000 435.000000 421.000000 426.300000 429.420000     <-

20200825.000000 100000.000000 434.000000 421.000000 426.300000 429.420000 

20200825.000000 110000.000000 434.500000 421.000000 426.300000 429.420000 

20200825.000000 120000.000000 435.000000 421.000000 426.300000 429.420000 

20200825.000000 130000.000000 434.500000 421.000000 426.300000 429.420000 

20200826.000000 90000.000000 438.500000 421.000000 429.730000 429.420000 

20200826.000000 100000.000000 438.500000 421.000000 429.730000 429.420000 

20200826.000000 110000.000000 438.500000 421.000000 429.730000 429.420000 

20200826.000000 120000.000000 439.500000 421.000000 430.710000 429.420000 

20200826.000000 130000.000000 442.000000 421.000000 433.160000 429.420000 

20200827.000000 90000.000000 449.500000 421.000000 440.510000 429.420000 

20200827.000000 100000.000000 447.500000 421.000000 440.510000 429.420000 

20200827.000000 110000.000000 448.000000 421.000000 440.510000 429.420000 

20200827.000000 120000.000000 447.000000 421.000000 440.510000 429.420000 

20200827.000000 130000.000000 444.000000 421.000000 440.510000 429.420000 

out

20200828.000000 90000.000000 438.500000 421.000000 440.510000 429.420000

 

從左至右分別是 日期 時間 收盤價 進場價 移動停損點 開始移動點

您可以看到在小幫手第一個箭頭標示處收盤價超過開始移動點,所以移動停損向上。

接著價格往下但移動停損還是保持原樣,直到第二個箭頭標示處收盤價超過第一次移動時的收盤價,所以移動停損點也跟著上調。

直到最後out出現後的最後一行收盤價跌到 438.5,比移動停損點 440.51 還低,所以出場。

 

需注意的是,直到out往後一筆才是完成一個交易。

因為腳本執行完出場的交易指令印出out後,還會執行接下來的print。

附加文件

MT 發文於   2021/11/02

請問小幫手

 

 

以下是上面提到的移動停利腳本內容:

 

 

關於這個移動停利,我自己用自動交易跑回測的時候,print出來的moving_point數值會一直是第一次或第二次進場那天的數值,

後面不管交易了幾次,print出來的數字就一直是同樣的數字,另外所print出來的stop_point數值,照理說超過moving_point應該

stop_point的數值只會越來越高,但是我自己print出來的數值卻會跟著收盤價忽高忽低,請問是哪裡出錯了

 

以下是我使用的腳本

 

if barfreq <> "Min" or Barinterval <>60 then RaiseRuntimeError("請設定頻率為60分鐘");

 

 

input: stop_per(2, "停損百分比"), trailing_per(2, "移動起始點");

 

var: stop_point(0), moving_point(0), controller(0);

 

 

 

if position = 0 and filled = 0 and GetField("開盤價", "D")>GetField("收盤價", "D")[1] then setposition(1, market);

 

if filled > 0 and position > 0 then begin

 

    if controller = 0 then begin

 

        stop_point = filledAvgPrice * (1 - (0.01 * stop_per));    //計算停損點

 

    moving_point = filledAvgPrice * (1 + (0.01 * trailing_per));    //計算起始移動點

 

controller = 1;

 

end;

 

if close >= moving_point and (close * (1 - (0.01 * stop_per))) > stop_point then stop_point = (close * (1 - (0.01 * stop_per)))

 

// 如果價格大於起始移動點且新停損點大於舊停損點的話,更新停損點數值

 

    else if close <= stop_point then begin

 

// 收盤價小於停損點就出場

 

    setposition(0, market);

 

controller = 0;

 

print("out");

 

end;

print(file("c:\print4\"),date, time, close, filledAvgPrice, stop_point, moving_point);

 

end;

XQ小幫手 發文於   2021/10/26

Hello 黑牛,

 

小幫手在 2021/06/24 和 2021/06/25 的回覆裡就是提供交易腳本。

您可以下載該腳本來使用。

另外腳本內只有包含移動停損(利),並沒有停利。

您可以參考其他篇文章來將固定停利的部分加入腳本裡。

小幫手這邊舉個簡單範例:

input: profit_target(5, "停利%");

if position > 0 and close > filledavgprice * (1 + (0.01 * profit_target)) then setposition(0, market);

if position < 0 and close < filledavgprice * (1 - (0.01 * profit_target)) then setposition(0, market);
要變動%數只要修改input即可。

黑牛 發文於   2021/10/23

Hello roryccf,

 

小幫手依照您的邏輯寫了個範例供您參考。

您可以將其修改為適合您的形式。

請問小編~這腳本如果要改成自動交易腳本修改哪個地方

還有庭麗和停損的趴數要修改哪邊?

麻煩小編~感謝

 

deceye 發文於   2021/09/15

非常感謝小幫手,沒注意到多空都有

XQ小幫手 發文於   2021/09/07

Hello deceye,

 

您可以直接下載小幫手上方提供的交易腳本。

裡面有多方和空方的移動停損。

其中 filled 和 position 大於0的部分為多方移動停損, filled 和 position 小於0的部分是空方移動停損。

deceye 發文於   2021/09/04

請問有做空移動停利的寫法嗎

XQ小幫手 發文於   2021/07/07

Hello roryccf,

 

小幫手依照您的邏輯寫了個範例供您參考。

您可以將其修改為適合您的形式。

附加文件

roryccf 發文於   2021/07/05

近來使用了上述交易腳本來測試, 但是自動交易只支援某幾家特定券商,無法用於目前交易上

是否能請小幫手大大協助改成警示腳本以應用在策略雷達?

邏輯應該是股價到達基準價後回落多少百分比會有警示.

舉例來說, 基準價或買進價是100, 當股價上漲到115時更新115為基準價, 若從基準價回落10%後則會發出警示

感激不盡!

 

 

roryccf 發文於   2021/06/30

感謝協助,謝謝

Show More Posts 發表回覆
Close