Params
Numeric Kai_No(1);//开仓的数量
Numeric DaoDian_KaiGuan(1);// 到点平仓的开关 1 为执行 0为不执行
Numeric length(23);
Numeric n(1);
Numeric loss_yuan(520);
Numeric win_bili1(1);
Numeric win_bili2(2);
Numeric KP_PC_Time(9.30);//开盘 N 分钟可以平仓
Numeric kaipan_N_M_win_bili(2); //开盘后,N分钟止盈的比例
Numeric KaiCang_Time(9.01);//开盘开始时间
Numeric KaiCang_Time1(21.01);//开盘开始时间
Numeric StopOpen(14.55); //收盘前 N分钟不开单
Numeric StopOpen1(22.55);//收盘前 N分钟不开单
Numeric PingCang_Time(14.55);//收盘前平仓
Numeric PingCang_Time1(22.55);//收盘前平仓
Vars
//************************
Numeric MinPoint;
BoolSeries con_Time;//
BoolSeries ye_time_kz;//
BoolSeries ye_time_kz1;//
NumericSeries B_xinhao;
NumericSeries S_xinhao;
//**********************************
Numeric myhigh;
Numeric mylow;
Numeric MyEntryPrice;
Numeric MyExitPrice;
Begin
//If( currentdate>20200313){Return;}
// 集合竞价和小节休息过滤
If(!CallAuctionFilter()) Return;
MinPoint = MinMove*PriceScale;
if(KaiCang_Time1 <StopOpen1 && StopOpen1<=24)
{
ye_time_kz = Time>KaiCang_Time1/100 && time<StopOpen1/100 ;
}
Else if(KaiCang_Time > StopOpen1 && StopOpen1>=0)
{
ye_time_kz = ( Time>KaiCang_Time1/100 && time<=23.59/100) ||(Time>=0 && time<StopOpen1/100) ;
}Else
{
ye_time_kz = False;
}
con_Time =(Time>=KaiCang_Time/100 && time<StopOpen/100) || ye_time_kz ;
/*
Commentary("Time?="+Text( Time ));
Commentary("StopOpen/100?="+Text( StopOpen/100 ));
Commentary(" StopOpen1/100?="+Text( StopOpen1/100 ));
Commentary("bai=?"+IIFString( Time>=KaiCang_Time/100 && time<StopOpen/100,"ok","没有") );
Commentary("ye_time_kz=?"+IIFString( ye_time_kz,"ok","没有") );
//*/
//*********************************************************************
//***********************************************【到点平仓】**************************************
If(MarketPosition==1 && (Time==PingCang_Time/100 || Time==PingCang_Time1/100) && DaoDian_KaiGuan == 1 )
{
Sell(0,Open);
PlotString("信号","到点平仓",Low,-1,0);
}
If(MarketPosition==-1 && (Time==PingCang_Time/100 || Time==PingCang_Time1/100) && DaoDian_KaiGuan == 1 )
{
buytocover(0,Open);
PlotString("信号","到点平仓",Low,-1,0);
}
//*********************************************************************
//*********************************************************************
myhigh = Highest(High[1],length);
mylow = Lowest(Low[1],length);
PlotNumeric("myhigh",myhigh);
PlotNumeric("mylow",mylow);
if (MarketPosition<>1 && High>myhigh && open<=myhigh && con_Time)
{
Buy(Kai_No,myhigh+n*MinMove*pricescale);
PlotString("信号","开多1",Low,-1,0);
B_xinhao = 1;
S_xinhao = 0;
}
if (MarketPosition<>1 && open>myhigh && con_Time)
{
Buy(Kai_No,open);
PlotString("信号","开多2",Low,-1,0);
B_xinhao = 1;
S_xinhao = 0;
}
if (MarketPosition<>-1 && Low<mylow && open>=mylow && con_Time)
{
SellShort(Kai_No,mylow-n*MinMove*pricescale);
PlotString("信号","开空1",Low,-1,0);
B_xinhao = 0;
S_xinhao = 1;
}
if (MarketPosition<>-1 && open<mylow && con_Time)
{
SellShort(Kai_No,open);
PlotString("信号","开空2",Low,-1,0);
B_xinhao = 0;
S_xinhao = 1;
}
//***************************************************************************************************************
//平仓
//多单
If(MarketPosition == 1 && BarsSinceEntry >= 1 && Time == KP_PC_Time && High >AvgEntryPrice*(1+kaipan_N_M_win_bili/100) )
{
Sell(0,Max(open, AvgEntryPrice*(1+win_bili1/100) ));
PlotString("信号","开盘N分钟止盈",Low,-1,0);
B_xinhao = 0;
}
//*****************************
//空单
If(MarketPosition == -1 && BarsSinceEntry >= 1 && Time == KP_PC_Time && Low< AvgEntryPrice*(1-kaipan_N_M_win_bili/100) )
{
BuyToCover(0,Min(open,AvgEntryPrice*(1-win_bili1/100)));
PlotString("信号","开盘N分钟止盈",Low,-1,0);
S_xinhao = 0;
}
//*********************************************************************
//*********************************************************************
//***********************************************
//平仓
//多单
If(MarketPosition == 1 && BarsSinceEntry >= 1 && High >AvgEntryPrice*(1+win_bili1/100) && B_xinhao == 1)
{
Sell(Kai_No/2,Max(open, AvgEntryPrice*(1+win_bili1/100) ));
PlotString("信号","多单止盈1",Low,-1,0);
B_xinhao = 2;
}
//多单
If(MarketPosition == 1 && BarsSinceEntry >= 1 && High >AvgEntryPrice*(1+win_bili2/100) && B_xinhao == 2 )
{
Sell(Kai_No/4,Max(open, AvgEntryPrice*(1+win_bili2/100) ));
PlotString("信号","多单止盈2",Low,-1,0);
B_xinhao = 3;
}
//*****************************
//空单
If(MarketPosition == -1 && BarsSinceEntry >= 1 && Low< AvgEntryPrice*(1-win_bili1/100) && S_xinhao == 1 )
{
BuyToCover(Kai_No/2,Min(open,AvgEntryPrice*(1-win_bili1/100)));
PlotString("信号","空单止盈1",Low,-1,0);
S_xinhao = 2;
}
//空单
If(MarketPosition == -1 && BarsSinceEntry >= 1 && Low< AvgEntryPrice*(1-win_bili2/100) && S_xinhao == 2 )
{
BuyToCover(Kai_No/4,Min(open,AvgEntryPrice*(1-win_bili2/100)));
PlotString("信号","空单止盈2",Low,-1,0);
S_xinhao = 3;
}
//*********************************************************************
//*********************************************************************
//平仓
Commentary("设置止损点数?="+ text(loss_yuan/(ContractUnit*BigPointValue)));
//多单止损
If(MarketPosition == 1 && BarsSinceEntry >= 1 && Low<= AvgEntryPrice - loss_yuan/(ContractUnit*BigPointValue) )
{
Sell(0,Min(open, AvgEntryPrice - loss_yuan/(ContractUnit*BigPointValue)));
PlotString("信号","多单止损",Low,-1,0);
B_xinhao = 0;
}
//空单止损
If(MarketPosition == -1 && BarsSinceEntry >= 1 && High>= AvgEntryPrice + loss_yuan/(ContractUnit*BigPointValue) )
{
BuyToCover(0,Max(open,AvgEntryPrice + loss_yuan/(ContractUnit*BigPointValue)));
PlotString("信号","空单止损",Low,-1,0);
S_xinhao = 0;
}
End