- 精华
- 0
- 在线时间
- 10 小时
- UID
- 267274
- 积分
- 6
- 帖子
- 4
- 阅读权限
- 10
- 注册时间
- 2018-7-5
- 最后登录
- 2021-6-1
- 精华
- 0
- UID
- 267274
- 积分
- 6
- 帖子
- 4
- 主题
- 2
- 阅读权限
- 10
- 注册时间
- 2018-7-5
- 最后登录
- 2021-6-1
|
前面的声明定义省略了
Begin
If(!CallAuctionFilter()) Return;
//----------------------------初始化--------------------------------------------
If(BarStatus==0)
{
SetGlobalVar(0,0);
SetGlobalVar(1,Lot);
SetGlobalVar(2,0);
SetGlobalVar(3,0);
SetGlobalVar(4,0);
SetGlobalVar(13,0);
SetGlobalVar(14,0);
SetGlobalVar(27,1); //开仓手数
}
If(TrueDate(0)!=TrueDate(1)) //开盘重置
{
SetGlobalVar(13,0); //日交易次数
SetGlobalVar(14,0); //日盈利次数
}
MinPr= MinMove*PriceScale;
//-----------------------计算开仓手数-------------------------------------------------
Lots=GetGlobalVar(27); //开仓手数
ZDTStop=(Q_BidPrice>Q_LowerLimit+5*MinPr)&&(Q_AskPrice<Q_UpperLimit-5*MinPr); //涨跌停板不开仓
SetGlobalVar(15,Q_BidPrice); //买一价
SetGlobalVar(16,Q_BidVol); //买一量
SetGlobalVar(17,Q_AskPrice); //卖一价
SetGlobalVar(18,Q_AskVol); //卖一量
Bid = GetGlobalVar(15); //买一价
BidVol = GetGlobalVar(16); //买一量
Ask= GetGlobalVar(17); //卖一价
AskVol= GetGlobalVar(18); //卖一量
//-------------------------进出场条件--------------------------------------
UB=lowest(LOW,999)+(highest(HIGH,999)-lowest(LOW,999))*7/8;
LB=lowest(LOW,999)+(highest(HIGH,999)-lowest(LOW,999))*1/8;
PlotNumeric("UB",UB);
PlotNumeric("LB", LB);
If(BarStatus==2)
{
SetGlobalVar(19,Max(Max( Max( Bid[1],Bid[2]), Bid[3]), Bid[4])); //最近4笔TICK最大买一价(不含当前TICK)
SetGlobalVar(20,Max(Max( Max( BidVol[1],BidVol[2]), BidVol[3]), BidVol[4])); //最近4笔TICK最大买一量(不含当前TICK)
SetGlobalVar(21,Max(Max( Max( Ask[1],Ask[2]), Ask[3]), Ask[4])); //最近4笔TICK最大卖一价(不含当前TICK)
SetGlobalVar(22,Max(Max( Max( AskVol[1],AskVol[2]), AskVol[3]), AskVol[4])); //最近4笔TICK最大卖一价量(不含当前TICK)
}
Bid_Max = GetGlobalVar(19); //最大买一价
BidVol_Max = GetGlobalVar(20); //最大买一量
Ask_Max = GetGlobalVar(21); //最大卖一价
AskVol_Max = GetGlobalVar(22); //最大卖一量
If(BarStatus==2)
{
//---------------------------量价指标---------------------------------------------
SetGlobalVar(30,Q_OpenInt); //当前商品的持仓量
SetGlobalVar(31,Q_TotalVol); //当日成交量
DayOpint=GetGlobalVar(30);
Dayvol=GetGlobalVar(31);
Tickvol=Dayvol-Dayvol[1]; //Tick成交量
If(CountIf(Tickvol>TickDL,10)>2 && DayOpint>DayOpint[2]) //10个中Tick成交量超过TickDL的个数大于2,开始放大量了,且增仓了
SetGlobalVar2("FL",1);
Else SetGlobalVar2("FL",0);
//高频盘口策略 TicK周期下使用
If(ZDTStop && TradeTime && C[1]>UB[1] && GetGlobalVar2("FL")==1 && Q_BidPrice>=Q_AvgPrice && Q_LastFlag==1 &&(Q_BidVol > GetGlobalVar(20)) && (Q_BidPrice > GetGlobalVar(19))) //开多条件
SetGlobalVar2("BK",1);
Else SetGlobalVar2("BK",0);
If(ZDTStop && TradeTime && C[1]< LB[1] && GetGlobalVar2("FL")==1 && Q_AskPrice<=Q_AvgPrice && Q_LastFlag==-1 && (Q_AskVol > GetGlobalVar(22)) && (Q_AskPrice < GetGlobalVar(21))) //开空条件
SetGlobalVar2("SK",1);
Else SetGlobalVar2("SK",0);
//--------------------------开平仓模块---------------------------------
If (GetGlobalVar(0)== 1)//平多
{
If ((Q_BidPrice<=GetGlobalVar(6)) or (TimeDiff(GetGlobalVar(55),CurrentTime()) > 600))//开仓超过600秒平仓//多头止损
{
Lotp=Lots; //平仓手数
// text_order(strDir,celueID,1,3,Lotp,Q_BidPrice,SmoothPoint,Lock);
SetGlobalVar(0,0);
KF=GetGlobalVar(0);
SetGlobalVar(27,1); //止损变回1手
//---------------
Sell(Lotp, Q_BidPrice);
Return; //平仓后返回
}
Else If(Q_AskPrice>=GetGlobalVar(7))//多头止盈
{
Lotp=Lots; //平仓手数
// text_order(strDir,celueID,1,3,Lotp,Q_BidPrice,SmoothPoint,Lock);
SetGlobalVar(0,0);
KF=GetGlobalVar(0);
If(Lots>=1 and Lots<4) Lots=Lots+1;
Else If(Lots>=4 and Lots<8) Lots=Lots+2;
Else If(Lots>=8 ) Lots=8;
SetGlobalVar(27,Lots); //记录开仓手数
//---------------
Sell(Lotp, Q_BidPrice);
Return;
}
}
Else If(GetGlobalVar(0)==-1)//平空
{
If ((Q_AskPrice>=GetGlobalVar(10)) or (TimeDiff(GetGlobalVar(77),CurrentTime())>600))//开仓超过600秒平仓
{
Lotp=Lots;
//text_order(strDir,celueID,0,3,Lotp,Q_AskPrice,SmoothPoint,Lock);
SetGlobalVar(0,0);
KF=GetGlobalVar(0);
SetGlobalVar(27,1); //止损变回1手
//---------------
BuyToCover(Lotp,Q_AskPrice);
Return;
}
Else If (Q_BidPrice<=GetGlobalVar(11))//空头止盈
{
Lotp=Lots;
// text_order(strDir,celueID,0,3,Lotp,Q_AskPrice,SmoothPoint,Lock);
SetGlobalVar(0,0);
KF=GetGlobalVar(0);
If(Lots>=1 and Lots<4) Lots=Lots+1;
Else If(Lots>=4 and Lots<8) Lots=Lots+2;
Else If(Lots>=8) Lots=8;
SetGlobalVar(27,Lots); //记录开仓手数
//---------------
BuyToCover(Lotp,Q_AskPrice);
Return;
}
}
Else If (GetGlobalVar(0)== 0 && GetGlobalVar2("BK")==1) //开多
{
// text_order(strDir,celueID,0,0,Lots,Q_AskPrice,SmoothPoint,Lock);
SetGlobalVar(0,1);
jiacha=Q_AskPrice-Q_BidPrice;
SetGlobalVar(5,Q_AskPrice);
SetGlobalVar(6,Q_AskPrice - (StopLoss+jiacha)*MinPr);
SetGlobalVar(7,Q_AskPrice + (StopYin+jiacha)*MinPr);
SetGlobalVar(36,Q_AskPrice +jiacha*MinPr);
SetGlobalVar(37,Q_AskPrice -jiacha*MinPr );
SetGlobalVar(8,Q_AskPrice - Ydzyin*MinPr);
SetGlobalVar(4,GetGlobalVar(4)+1);
SetGlobalVar(13,GetGlobalVar(13)+1);
PriceBid = GetGlobalVar(5);
SetGlobalVar(55,CurrentTime()); //多头开仓本地机器时间
PriceBidTime = GetGlobalVar(55);
//-------------------------------
Buy(Lots,Q_AskPrice);
Return;
}
Else If (GetGlobalVar(0)== 0 && GetGlobalVar2("SK")==1)//卖开
{
// text_order(strDir,celueID,1,0,Lots,Q_BidPrice,SmoothPoint,Lock);
SetGlobalVar(0,-1);
jiacha=Q_AskPrice-Q_BidPrice;
SetGlobalVar(9,Q_BidPrice);
SetGlobalVar(10,Q_BidPrice +(StopLoss+jiacha)*MinPr);
SetGlobalVar(11,Q_BidPrice -(StopYin+jiacha)*MinPr);
SetGlobalVar(40,Q_BidPrice +jiacha*MinPr );
SetGlobalVar(41,Q_BidPrice -jiacha*MinPr);
SetGlobalVar(12,Q_BidPrice + Ydzyin*MinPr);
SetGlobalVar(4,GetGlobalVar(4)+1);
SetGlobalVar(13,GetGlobalVar(13)+1);
PriceAsk = GetGlobalVar(9);
SetGlobalVar(77,CurrentTime()); //空头开仓本地机器时间
PriceAskTime = GetGlobalVar(77);
//-------------------------------
SellShort(Lots,Q_BidPrice);
Return;
}
//-----------------------------盈利一定跳数启动,保本移动止盈-------------------------------------------
If (GetGlobalVar(0)== 1)//多头移动止盈
{
SetGlobalVar(8,Max(GetGlobalVar(8),Q_AskPrice-Ydzyin*MinPr));
If (GetGlobalVar(8)>GetGlobalVar(5) && GetGlobalVar(8)>=Q_BidPrice)
{
Lotp=Lots;
// text_order(strDir,celueID,1,3,Lotp,Q_BidPrice,SmoothPoint,Lock);
SetGlobalVar(0,0);
KF=GetGlobalVar(0);
If(Lots>=1 and Lots<4) Lots=Lots+1;
Else If(Lots>=4 and Lots<8) Lots=Lots+2;
Else If(Lots>=8) Lots=8;
SetGlobalVar(27,Lots); //记录开仓手数
//---------------
Sell(Lotp, Q_BidPrice);
Return;
}
}
Else If (GetGlobalVar(0) == -1)//空头移动止盈
{
SetGlobalVar(12,Min(GetGlobalVar(12),Q_BidPrice+Ydzyin*MinPr));
If (GetGlobalVar(12) <= GetGlobalVar(9) && GetGlobalVar(12) <=Q_AskPrice)
{
Lotp=Lots;
// text_order(strDir,celueID,0,3,Lotp,Q_AskPrice,SmoothPoint,Lock);
SetGlobalVar(0,0);
KF=GetGlobalVar(0);
If(Lots>=1 and Lots<4) Lots=Lots+1;
Else If(Lots>=4 and Lots<8) Lots=Lots+2;
Else If(Lots>=8) Lots=8;
SetGlobalVar(27,Lots); //记录开仓手数
//---------------
BuyToCover(Lotp,Q_AskPrice);
Return;
}
} |
|