小幫手您好,我想寫一個使用連續觸發+逐筆洗價的訊號,但是希望訊號觸發後能夠暫停一段時間不再觸發,所以寫了一段程式想達成"暫停一段時間不觸發"的功能,但是測試後發現訊號會在單根bar內連續觸發,問題應該是在"無法檔單根bar內連續觸發",以下是我的程式碼(為了簡化,排除了觸發條件部分程式碼),想請問小幫手為何我寫的邏輯無法順利運行? 應該怎麼寫才能達到這個功能? 謝謝
使用頻率 : 1分K
變數說明 :
is_ret : 用來擋連續觸發,因為是逐筆洗價,所以加上intrabarpersist,防止單跟bar內連續觸發
buffer_count : 用來記數暫停的時間(bar數)
buffer_lengh : 訊號暫停的時間(bar數)
程式碼 :
var : intrabarpersist is_ret(false), buffer_count(0), buffer_lengh(30);
// ---訊號暫停部分程式碼---
if is_ret = true then
begin
buffer_count = buffer_count + 1; // 累加暫停bar數
if buffer_count > buffer_lengh then // 暫停結束
begin
is_ret = false; // 關閉暫停flag 繼續偵測
buffer_count = 0;
end
else return; // 暫停bar數條件未達,繼續暫停偵測
end;
// ---訊號觸發部分程式碼---
condition1 = 觸發條件;
if condition1 then
begin
is_ret = true; // 訊號觸發,開啟暫停流程
ret = 1;
end;
2 評論