本帖最后由 技术006 于 2024-6-7 13:17 编辑
以下是多头部分的实现方式,采用全局变量进行记录。你可以参考学习。
[PEL] 复制代码 //1、当K线整体上穿5日均线就自动买入3手多单。//2、当K线整体下穿5日均线就自动买入3手空单。
//3、多单或者空单当浮动价格每盈利2个点,系统就自动买入1手。
//4、或当浮动价格每亏损2个点系统就自动卖出1手。
//5、直到亏损6个点止损,或者盈利6个点止盈。
VARIABLE:BASE_PRICE=0,GRID_NUM=0,WIN_PRICE=0,STOP_PRICE=0;
ma5:MA(LOW,5);
IF cross(low,MA5)=1 and holding=0 THEN BEGIN
BUY(1,3,LIMITR,close);
BASE_PRICE:=close;
//记录当前开多时的止损价格
STOP_PRICE:=BASE_PRICE-6*MINDIFF;
WIN_PRICE:=BASE_PRICE+6*MINDIFF;
END
//当前最新价与止损价之间的价格差
OFFSET:CLOSE-BASE_PRICE;
//相对于基准的格子数
BASE_GRID:INTPART(OFFSET/(2*MINDIFF));
IF HOLDING>0 AND BASE_GRID-GRID_NUM>=1 and BASE_GRID<3 and BASE_GRID>0 THEN BEGIN
BUY(1,BASE_GRID-GRID_NUM,MARKETR);
GRID_NUM:=BASE_GRID;
END
IF HOLDING>0 AND BASE_GRID-GRID_NUM<=-1 and BASE_GRID>-3 and BASE_GRID<0 THEN BEGIN
sell(1,abs(BASE_GRID-GRID_NUM),MARKETR);
GRID_NUM:=BASE_GRID;
if HOLDING=0 then BEGIN
BASE_PRICE:=0;
GRID_NUM:=0;
STOP_PRICE:=0;
WIN_PRICE:=0;
end
END
//止盈止损
IF close>WIN_PRICE and HOLDING>0 then BEGIN
sell(1,HOLDING,MARKETR);
BASE_PRICE:=0;
GRID_NUM:=0;
STOP_PRICE:=0;
WIN_PRICE:=0;
end
IF close<STOP_PRICE and HOLDING>0 then BEGIN
sell(1,HOLDING,MARKETR);
BASE_PRICE:=0;
GRID_NUM:=0;
STOP_PRICE:=0;
WIN_PRICE:=0;
end
|