引用: 最初由 cgjj 發表
麻煩把您最後修正的原碼完整貼出
這樣才能協助您唷
//【交易訊號導入】數列
diff:="macd.diff#min5";
dea:="macd.dea#min5";
m:="macd.macd#min5", ColorGreen , Linethick2;
m2:=ref(m,1), Colorred , Linethick2;
m3:=ref(m,2);
開盤:=time>084500;
現開:=time=090000;
收盤:=time=134500;
StSP:=barslast(time=090000);
macd轉上:=cross(m,m2);
macd轉下:=cross(m2,m);
DECK:=date<>ref(date,1);
DECKSP:=barslast(DECK);
量20:="vol.ma3#min5";
量10:="vol.ma2#min5";
量5:="vol.ma1#min5";
最小量:=MIN(量20,量10);
最小量:=MIN(最小量,量5);
出量:=cross(vol,量20*1.2) and time>=090000;
出量SP:=barslast(出量);
殺量:=出量 and REF(m,出量SP)<REF(m,出量SP+1) and time>=090000;
買量:=if(time>=090000,殺量 and sum(出量,DECKSP)>0 ,if(time=134500,0,0));
買量SP:=barslast(買量);
買訊:if(time>=090000,macd轉上 AND SUM(macd轉上,買量SP)=1 and sum(買量,DECKSP)>0,if(time=134500,0,0));
買訊SP:=barslast(買訊);
VERTLINE(收盤) linedot;
拉量:=出量 and REF(m,出量SP)>REF(m,出量SP+1) and time>=090000;
賣量:=if(time>=090000,拉量 and sum(拉量,DECKSP)>0 ,if(time=134500,0,0));
賣量SP:=barslast(賣量);
賣訊:if(time>=090000,macd轉下 AND SUM(macd轉下,賣量SP)=1 and sum(賣量,DECKSP)>0,if(time=134500,0,0));
賣訊SP:=barslast(賣訊);
////////////////////////////////////////////
買支:=if(買訊,LLV(L,10)-9,0);
買支:ref(買支,barslast(買支>0 or DECK));
PARTLINE(sum(買支>0,2)=2,買支),colorgreen;
賣壓:=if(賣訊,HHV(H,10)+9,0);
賣壓:ref(賣壓,barslast(賣壓>0 or DECK));
PARTLINE(sum(賣壓>0,2)=2,賣壓),colorwhite;
支撐:=REF(L,barslast(ref(l,1)>ref(L,2) and ref(L,2)>ref(L,3) AND L>REF(L,2))+2)-5;
支撐:ref(支撐,barslast(支撐>0 or DECK));
壓力:=REF( H,barslast(ref(h,1)<ref(h,2) AND H<REF(H,2) AND ref(h,3)<ref(h,2))+2)+5;
壓力:ref(壓力,barslast(壓力>0 or DECK));
////////////////////////////////////////////////////////////
CKU2:=(H>賣壓 or barpos=0)-(L<買支 or barpos=0);
CKU3:=(H>壓力 or barpos=0)-(L<支撐 or barpos=0);
強平:=Time=134500;
買1:=買訊 and 強平=0 or barpos=0;
賣1:=賣訊 and 強平=0 or barpos=0;
買賣:=買1-賣1; CC:=C;
進出:C*0 NOAXIS; 多空:=0;
for i=1 to datacount do begin
if 強平[i] then begin
if 多空<>0 then begin
進出[i]:=SGN(多空)*-4; 多空:=0; 強平價:=CC[i];
end;
end else begin
if 買賣[i]<>0 and 買賣[i]<>SGN(多空) then begin
多空:=買賣[i]; 進出[i]:=多空; 進價:=CC[i];
end else if 多空<>0 then begin
if CKU2[i]=-多空 then begin
進出[i]:=-多空*2; 多空:=CKU2[i]*2;
end else if CKU3[i]*2=-多空 then begin
進出[i]:=CKU3[i]*3; 多空:=0;
end;
end;
end;
end;
多頭進:=進出=1 or 進出=2; //多頭進場{0.無 1.進場} EnterLong
多頭平:=進出=-1 or 進出=-2 or 進出=-3 or 進出=-4; //多頭平倉{0.無 1.平倉} ExitLong
多頭加:=C*0; //多頭加碼{0.無 1.加碼}
多頭減:=C*0; //多頭減碼{0.無 1.減碼}
空頭進:=進出=-1 or 進出=-2; //空頭進場{0.無 1.進場} EnterShort
空頭平:=進出=1 or 進出=2 or 進出=3 or 進出=4 ; //空頭平倉{0.無 1.平倉} ExitShort
空頭加:=C*0; //空頭加碼{0.無 1.加碼}
空頭減:=C*0; //空頭減碼{0.無 1.減碼}
//【設定進場訊號處理】單值
控連訊:=1; {0.連續進場訊號不再買進,自定加碼減碼訊號無效}
{1.連續進場訊號不再買進,自定加碼減碼訊號有效}
{2.連續進場訊號加碼買進,自定加碼減碼訊號無效}
//【設定加碼減碼過濾】單值
//若於進場點或平倉點, 加碼訊號和減碼訊號將被視為無訊號
//模式:{0.不過濾, -1.連續相鄰訊號僅保留首根, >0.過濾後面 N 個週期內的相同訊號}
加碼濾:=0; //加碼訊號過濾模式
減碼濾:=0; //減碼訊號過濾模式
//【設定交易價格】數列
//設置多方和空方之進場、平倉、強制平倉、加碼、減碼的交易價格
多控價:=c;
多控價:if( 進出=1,c ,if( 進出=-1,c,if( 進出=-2,買支,if( 進出=2,賣壓,if( 進出=-3,支撐,if( 進出=-4,c , 多控價))))));
空控價:=c;
空控價:if( 進出=1,c ,if( 進出=-1,c,if( 進出=2,賣壓,if( 進出=-2,買支,if( 進出=3,壓力,if( 進出=4,c ,空控價))))));
|