請問期貨保本語法

  •   45 
  • 最後發表   alexw  6 天前
alexw 發文於   2026/03/05

// 假設您已有進場策略

var: ProfitTarget(50); // 設定獲利點數 (例如: 50點)

var: BreakEvenPrice(0); // 初始化保本價

 

// 檢查是否持有部位

if Filled > 0 then begin

    // 1. 計算保本價: 庫存成本 + 預留的手續費與稅 (可調整)

    BreakEvenPrice = FilledAvgPrice + 2; 

 

    // 2. 當目前部位獲利超過目標 ProfitTarget

    if Close > (FilledAvgPrice + ProfitTarget) then begin

        // 3. 保本機制:如果價格回落到保本價以下,全數平倉

        if Close <= BreakEvenPrice then begin

            SetPosition(0, "市價");

// 平倉  Commentary("觸發保本出場");

        end;

    end;

end;

 

照寫後執行有達到條件,但拉回卻沒保本停利,哪裡要修正呢?

排序方式: 標準 | 最新
虎科大許教授 發文於   2026/03/05

你這樣寫,有邏輯錯誤。Close > (FilledAvgPrice + ProfitTarget)不可能又Close <= BreakEvenPrice。

處理方式,在當天第一個Tick出現時,讓一個布林變數,(用intrabarpersist宣告)等於False。當Close > (FilledAvgPrice + ProfitTarget)時,讓該布林變數為True。

接著,撰寫IF條件句(不可放在Close > (FilledAvgPrice + ProfitTarget)裡面):

if Close <= BreakEvenPrice and 布林變數=True,就出場。

 

alexw 發文於   2026/03/07

var: ProfitTarget(20); // 設定獲利點數 (例如: 50點)

var: BreakEvenPrice(0); // 初始化保本價

var:intraBarPersist xtime(0);

// 檢查是否持有部位

 

 

if Date > date[1] then Xtime=false;

 

 

if Filled > 0 then begin

    // 1. 計算保本價: 庫存成本 + 預留的手續費與稅 (可調整)

    BreakEvenPrice = FilledAvgPrice + 10 ; 

 

end;

 

    // 2. 當目前部位獲利超過目標 ProfitTarget

    if Close > (FilledAvgPrice + ProfitTarget) then begin  Xtime=true;

 

end;

        // 3. 保本機制:如果價格回落到保本價以下,全數平倉

        if Close <= BreakEvenPrice and Xtime=true then begin

            SetPosition(0, market); 

// 平倉            Commentary("觸發保本出場");

         

end;

 

 

 

改成這樣,但xs說這條有問題無法編輯?if Date > date[1] then Xtime=false;

虎科大許教授 發文於   2026/03/07

If isFirstCall("Date") then xtime=false;

alexw 發文於   2026/03/07

改那條還是無法編譯 出現:"AND" 左右兩邊的型態不同

虎科大許教授 發文於   2026/03/07

Var: intraBarPersist xtime(false);

 

 

alexw 發文於   2026/03/07

可以了,有開盤再測試,教授讚

發表回覆
Close