您好,
1.使用網格交易程式時,執行記錄會一直顯示"目標部位與目前部位相同且價格不變以下指令不予執行",
如何讓執行記錄不要一直顯示這個訊息呢? 不知道能不能請問該如何修改程式呢?
2. 倒數第二行,setposition(V_GridPosition, P_UpLimit - (V_Grid+1)*V_GridNo);//依網格價位將委託設定至目標部位
這行程式是不是應該也要像上面V_LS=1 時一樣, 要用 end else begin......end; 來包住倒數第二行這段程式嗎呢?
不然這行程式每次都會執行...是這樣嗎?
新手使用, 給您添麻煩了...請多包涵...感恩貴團隊...謝謝...
//參數定義
input:P_LS(1,"多空啟動",inputkind:=dict(["多方啟動",1],["空方啟動",-1]));
input:P_UpLimit(15000,"區間上緣");
input:P_DnLimit(12000,"區間下緣");
input:P_Grid(30,"網格數");
input:P_GridV(1,"每筆張數");
//變數定義
var:V_LS(0);//多空方向
var:V_Grid(0);//網格點數
var:intrabarpersist V_GridNo(0);//網格編號
var:intrabarpersist V_GridPosition(0);//網格目標部位
//多空方向,預設做多
if P_LS=-1 then V_LS=-1 else V_LS=1;
//計算每格點數
once V_Grid = intPortion((P_UpLimit-P_DnLimit)/P_Grid);
if V_LS=1 then value1=MaxList((close-P_DnLimit)/V_Grid,0)
else value1=MaxList((P_UpLimit-close)/V_Grid,0);
//計算目前所處網格編號,最低網格為0號
V_GridNo = intPortion(value1);
//計算網格應有部位
if V_LS=1 then begin
V_GridPosition = P_GridV * maxList(P_Grid - V_GridNo,0);
//啟動策略或價格下跌造成部位不足,以網格下價買齊
if filled < V_GridPosition then begin
setposition(V_GridPosition, P_DnLimit + V_Grid*V_GridNo);
end else begin
//價格上漲造成部位太多,以網格上價賣出
setposition(V_GridPosition, P_DnLimit + (V_Grid+1)*V_GridNo);
end;
end else begin
V_GridPosition = - P_GridV * maxList(P_Grid - V_GridNo,0);
//啟動策略或價格上漲造成部位不足,以網格上價放空
if filled > V_GridPosition then setposition(V_GridPosition, P_UpLimit - V_Grid*V_GridNo);
//價格下跌造成部位太多,以網格下價回補
setposition(V_GridPosition, P_UpLimit - (V_Grid+1)*V_GridNo);//依網格價位將委託設定至目標部位
end;
2 評論