1.庫存虧損時若小賺 自訂壓力價前先平倉
2.也可不放成本計算,在壓力價前平倉
3. 平倉後若要買回當沖------尚未完成
setBarBack(500); //壓力支撐價位 Vars: intrabarpersist maxLessThanLow(0), intrabarpersist minGreaterThanHigh(0), intrabarpersist mTlow(0), intrabarpersist mThigh(0); var:i(0); Array: values[19](0) ; values[1] = round(average(getField("收盤價","D"),5),2); // 5日均 values[2] = round(average(getField("收盤價","D"),10),2); // 10日均 values[3] = round(average(getField("收盤價","D"),30),2); // 30日均 values[4] = round(average(getField("收盤價","D"),60),2); // 60日均 values[5] = highest(High, 5);//5日高 values[6] = highest(High, 25);//25日高 values[7] = highest(High, 75);//75日高 values[8] = highest(High, 300);//300日高 values[9] = round(bollingerband(Close, 20, 2),2); // 布林上 values[10] = round(High,2); // 今高 values[11] = round(Close,2); // 今收 values[12] = round(Low,2); // 今低 values[13] = round(average(Close, 20),2); // 布林中 values[14] = round(bollingerband(Close, 20, -2),2); // 布林下 values[15] = round(xf_EMA("w",getField("收盤價","W"),12),2); // WE12 values[16] = round(xf_EMA("W",getField("收盤價","W"),26),2); // WE26 values[17] = EMA(getField("收盤價","D"),12); // DE12 values[18] = EMA(getField("收盤價","D"),26); // DE26 values[19] = round(GetField("控盤者成本線")[1],2); value27=HighestArray(values,19); value28=LowestArray(values,19); // 初始化 minGreaterThanHigh 和 maxLessThanLow minGreaterThanHigh = value27*1.1; maxLessThanLow = value28*0.9; For i = 1 to 19 begin // 找出大于 high 的最小值 壓力 if values[i] > High then begin if values[i] < minGreaterThanHigh then minGreaterThanHigh = values[i]; end; // 找出小于 low 的最大值 支撐 if values[i] < Low then begin if values[i] > maxLessThanLow then maxLessThanLow = values[i]; end; end; // 更新壓力價和支撐價 mThigh = minGreaterThanHigh; mTlow = maxLessThanLow; //----------------------------平倉賣 input: TM(090100,"進場時間"),LLP(1,"最低獲利%"),LLM(1.5,"最低獲利千元"), CT1(5,"排隊時間S"),CT2(3,"改價時間H"), mth(-2,"壓力價-檔"); var: intrabarpersist SentTime(0) ,intrabarpersist FRC1(0); if position > 0 //未委賣 and filled > 0 //有庫存 and currentTime > TM //進場時間 then begin //1S if position > 0 //確保未委賣 and filled > 0 //確保有庫存 and getField("漲停價", "D") > filledAvgPrice*(1+LLP/100) //避免放空及虧損賣出,有>最低獲利1% and addSpread(mThigh,mth) >= filledAvgPrice*(1+LLP/100) //壓力價-1檔 並確保大於最低獲利 then begin if close=getField("漲停價", "D") then setposition(0,addSpread(getField("漲停價", "D"),-1),label:="漲停賣"); setposition(0,addSpread(mThigh,mth),label:="壓力價停利");//0702 mth-2檔 setposition(0,(filledAvgPrice*(1+LLP/100))+LLM,label:="1000停利"); //委賣最低獲利壓力價-1檔或1000 SentTime=Getfield("時間","Tick");//紀錄委賣時間 FRC1=getField("當日序號", "Tick");//紀錄序號 end; end; if position=0 //已經委賣 and filled >0 //委賣但未成交 and GetField("收盤價","Tick") >=filledAvgPrice*(1+LLP/100) //現價大於成本價最低獲利 and Getfield("時間","Tick")>=timeadd(SentTime,"H",CT2) //排隊時間超過CT2 and addSpread(mThigh,mth) >= filledAvgPrice*(1+LLP/100) //壓力價-1檔情況下,還>=最低獲利1% then setposition(0,minList(addSpread(mThigh,mth),addSpread(((filledAvgPrice*(1+LLP/100))+LLM),-1)),label:="3H未達委託調價"); //平倉取最小值(壓力價-1檔 或 最低獲利價+1.5元-1檔的價格 )
13 評論