均价线帮我改成虚线,谢谢老师 (文华财经)

投资者咨询:均价线帮我改成虚线,谢谢老师 (文华财经)
来源:文华财经  日期:2020-10-14 11:30
Params
   Numeric AvgLen1(30);
   Numeric AvgLen2(60);
   Numeric AvgLen3(240);
   Numeric RLength(4);
Vars
NumericSeries Avg1; //指数移动平均1
NumericSeries Avg2; //指数移动平均2
NumericSeries Avg3; //指数移动平均3
NumericSeries BuyCon1; //做多条件之一
NumericSeries SellCon1; //做空条件之一
NumericSeries LongStopPrice; //多头跟踪止损价
NumericSeries ShortStopPrice; //空头跟踪止损价
NumericSeries Range1; //K线幅度
NumericSeries RangeL;
NumericSeries RangeS;
Numeric N; //下单手数
Numeric SH; //平仓参数
Numeric RLP,FLP; //涨跌停价
Numeric BIDP,ASKP; //买卖一价
Numeric BRP,SRP; //多空头可用持仓
Numeric OPFLG; //模型处理标志
Numeric BKDFLG; //买开处理标志
Numeric SKDFLG; //卖开处理标志
Numeric BPDFLG; //买平处理标志
Numeric SPDFLG; //卖平处理标志
Global_Numeric BKID,SKID; //开仓委托
Global_Numeric BPID,SPID; //平仓委托
Global_Numeric BKFLG,SKFLG; //开仓标志
Global_Numeric BPFLG,SPFLG; //平仓标志
Global_Numeric BKM,SKM; //开仓委托手数
Global_Numeric BPM,SPM; //平仓委托手数
Global_Numeric BKP,SKP; //开仓委托价格
Global_Numeric BPP,SPP; //平仓委托价格
Begin
DrawColorKLine(close>ma(close,207),red,1);
DrawColorKLine(close<ma(close,207),RGB(0,128,64),1);
DrawColorKLine(close==ma(close,207),RGB(192,192,192),1);
Avg1 = Ema(Close,AvgLen1);
Avg2 = Ema(Close,AvgLen2);
Avg3 = Ema(Close,AvgLen3);
Range1=High - Low; //定义K线幅度
//在图表上划出指数移动平均线
PlotNumeric("Avg1",Avg1);
 PlotNumeric("Avg2",Avg2);
 PlotNumeric("Avg3",Avg3);
 PlotNumeric("均价线",Settle);
//------------------------变量赋值------------------------//
If(OPFLG == 1) //变量赋值
{
 N = 1; //下单手数
 BIDP = Price("Bid1"); //买一价
 ASKP = Price("Ask1"); //卖一价
 RLP = Price("RiseLimit"); //涨停价
 FLP = Price("FallLimit"); //跌停价
 BRP = F_BuyRemainPosition(); //多头可用持仓
 SRP = F_SellRemainPosition(); //空头可用持仓
 BRP = Min(BRP,A_BuyRemainPosition()); //多头可用持仓
 SRP = Min(SRP,A_SellRemainPosition()); //空头可用持仓
 If(A_IsSHCode() == 1) //如果是上期所合约
 {
SH = Enum_ExitToday; //平仓参数
 }
 Else //如果非上期所合约
 {
SH = Enum_Exit; //平仓参数
 }
}
//------------------------信号处理------------------------//
If(OPFLG == 1) //信号处理
{
 If(F_FreshSig() == 1) //如果当前信号是未处理过的信号
 {
If(F_SigValid() == 1) //如果当前信号未消失
{
 If(F_Sig() == Sig_BK) //如果信号类型为BK
 {
Commentary("【BK信号!】");
BKDFLG = 1; //开启买开处理
 }
 Else If(F_Sig() == Sig_SP) //如果信号类型为SP
 {
Commentary("【SP信号!】");
SPDFLG = 1; //开启卖平处理
 }
 Else If(F_Sig() == Sig_SK) //如果信号类型为SK
 {
Commentary("【SK信号!】");
SKDFLG = 1; //开启卖开处理
 }
 Else If(F_Sig() == Sig_BP) //如果信号类型为BP
 {
Commentary("【BP信号!】");
BPDFLG = 1; //开启买平处理
 }
}
 }
}
//------------------------成交判断------------------------//
If(OPFLG == 1) //成交判断
{
 If(BKFLG == 1) //如果有买开委托
 {
If(F_OrderStatus(BKID) == Enum_Filled) //如果买开委托成交
{
 Commentary("【BK信号:买开委托成交!】");
 BKFLG = 0; //买开标志归0
}
 }
 If(SPFLG == 1) //如果有卖平委托
 {
If(F_OrderStatus(SPID) == Enum_Filled) //如果卖平委托成交
{
 Commentary("【SP信号:卖平委托成交!】");
 SPFLG = 0; //卖平标志归0
}
 }
 If(SKFLG == 1) //如果有卖开委托
 {
If(F_OrderStatus(SKID) == Enum_Filled) //如果卖开委托成交
{
 Commentary("【SK信号:卖开委托成交!】");
 SKFLG = 0; //卖开标志归0
}
 }
 If(BPFLG == 1) //如果有买平委托
 {
If(F_OrderStatus(BPID) == Enum_Filled) //如果买平委托成交
{
 Commentary("【BP信号:买平委托成交!】");
 BPFLG = 0; //买平标志归0
}
 }
}
//------------------------委托处理------------------------//
If(OPFLG == 1) //委托处理
{
 If(BKDFLG == 1) //如果已开启买开处理
 {
If(BKFLG == 0) //如果没有买开委托
{
 BKM = N; //买开委托手数
 BKP = ASKP; //买开委托价格
 Commentary("【BK信号:买开委托发出!】");
 BKID = A_SendOrder(Enum_Buy,Enum_Entry,BKM,BKP); //发出买开委托
 BKFLG = 1; //已发出买开委托
}
 }
 If(SPDFLG == 1) //如果已开启卖平处理
 {
If(SPFLG == 0) //如果没有卖平委托
{
 If(BRP > 0) //如果有多头可用持仓
 {
SPM = BRP; //卖平委托手数
SPP = FLP; //卖平委托价格
Commentary("【SP信号:卖平委托发出!】");
SPID = A_SendOrder(Enum_Sell,SH,SPM,SPP); //发出卖平委托
SPFLG = 1; //已发出卖平委托
 }
}
 }
 If(SKDFLG == 1) //如果已开启卖开处理
 {
If(SKFLG == 0) //如果没有卖开委托
{
 SKM = N; //卖开委托手数
 SKP = BIDP; //卖开委托价格
 Commentary("【SK信号:卖开委托发出!】");
 SKID = A_SendOrder(Enum_Sell,Enum_Entry,SKM,SKP); //发出卖开委托
 SKFLG = 1; //已发出卖开委托
}
 }
 If(BPDFLG == 1) //如果已开启买平处理
 {
If(BPFLG == 0) //如果没有买平委托
{
 If(SRP > 0) //如果有空头可用持仓
 {
BPM = SRP; //买平委托手数
BPP = RLP; //买平委托价格
Commentary("【BP信号:买平委托发出!】");
BPID = A_SendOrder(Enum_Buy,SH,BPM,BPP); //发出买平委托
BPFLG = 1; //已发出买平委托
 }
}
 }
}
End

技术人员回复
日期:2020-10-14 11:32
 
参考


 
Params
   Numeric AvgLen1(30);
   Numeric AvgLen2(60);
   Numeric AvgLen3(240);
   Numeric RLength(4);
Vars
NumericSeries Avg1; //指数移动平均1
NumericSeries Avg2; //指数移动平均2
NumericSeries Avg3; //指数移动平均3
NumericSeries BuyCon1; //做多条件之一
NumericSeries SellCon1; //做空条件之一
NumericSeries LongStopPrice; //多头跟踪止损价
NumericSeries ShortStopPrice; //空头跟踪止损价
NumericSeries Range1; //K线幅度
NumericSeries RangeL;
NumericSeries RangeS;
Numeric N; //下单手数
Numeric SH; //平仓参数
Numeric RLP,FLP; //涨跌停价
Numeric BIDP,ASKP; //买卖一价
Numeric BRP,SRP; //多空头可用持仓
Numeric OPFLG; //模型处理标志
Numeric BKDFLG; //买开处理标志
Numeric SKDFLG; //卖开处理标志
Numeric BPDFLG; //买平处理标志
Numeric SPDFLG; //卖平处理标志
Global_Numeric BKID,SKID; //开仓委托
Global_Numeric BPID,SPID; //平仓委托
Global_Numeric BKFLG,SKFLG; //开仓标志
Global_Numeric BPFLG,SPFLG; //平仓标志
Global_Numeric BKM,SKM; //开仓委托手数
Global_Numeric BPM,SPM; //平仓委托手数
Global_Numeric BKP,SKP; //开仓委托价格
Global_Numeric BPP,SPP; //平仓委托价格
Begin
DrawColorKLine(close>ma(close,207),red,1);
DrawColorKLine(close<ma(close,207),RGB(0,128,64),1);
DrawColorKLine(close==ma(close,207),RGB(192,192,192),1);
Avg1 = Ema(Close,AvgLen1);
Avg2 = Ema(Close,AvgLen2);
Avg3 = Ema(Close,AvgLen3);
Range1=High - Low; //定义K线幅度
//在图表上划出指数移动平均线
PlotNumeric("Avg1",Avg1);
 PlotNumeric("Avg2",Avg2);
 PlotNumeric("Avg3",Avg3);
PlotLine("均价线",Settle,Green,Dot);
//------------------------变量赋值------------------------//
If(OPFLG == 1) //变量赋值
{
 N = 1; //下单手数
 BIDP = Price("Bid1"); //买一价
 ASKP = Price("Ask1"); //卖一价
 RLP = Price("RiseLimit"); //涨停价
 FLP = Price("FallLimit"); //跌停价
 BRP = F_BuyRemainPosition(); //多头可用持仓
 SRP = F_SellRemainPosition(); //空头可用持仓
 BRP = Min(BRP,A_BuyRemainPosition()); //多头可用持仓
 SRP = Min(SRP,A_SellRemainPosition()); //空头可用持仓
 If(A_IsSHCode() == 1) //如果是上期所合约
 {
SH = Enum_ExitToday; //平仓参数
 }
 Else //如果非上期所合约
 {
SH = Enum_Exit; //平仓参数
 }
}
//------------------------信号处理------------------------//
If(OPFLG == 1) //信号处理
{
 If(F_FreshSig() == 1) //如果当前信号是未处理过的信号
 {
If(F_SigValid() == 1) //如果当前信号未消失
{
 If(F_Sig() == Sig_BK) //如果信号类型为BK
 {
Commentary("【BK信号!】");
BKDFLG = 1; //开启买开处理
 }
 Else If(F_Sig() == Sig_SP) //如果信号类型为SP
 {
Commentary("【SP信号!】");
SPDFLG = 1; //开启卖平处理
 }
 Else If(F_Sig() == Sig_SK) //如果信号类型为SK
 {
Commentary("【SK信号!】");
SKDFLG = 1; //开启卖开处理
 }
 Else If(F_Sig() == Sig_BP) //如果信号类型为BP
 {
Commentary("【BP信号!】");
BPDFLG = 1; //开启买平处理
 }
}
 }
}
//------------------------成交判断------------------------//
If(OPFLG == 1) //成交判断
{
 If(BKFLG == 1) //如果有买开委托
 {
If(F_OrderStatus(BKID) == Enum_Filled) //如果买开委托成交
{
 Commentary("【BK信号:买开委托成交!】");
 BKFLG = 0; //买开标志归0
}
 }
 If(SPFLG == 1) //如果有卖平委托
 {
If(F_OrderStatus(SPID) == Enum_Filled) //如果卖平委托成交
{
 Commentary("【SP信号:卖平委托成交!】");
 SPFLG = 0; //卖平标志归0
}
 }
 If(SKFLG == 1) //如果有卖开委托
 {
If(F_OrderStatus(SKID) == Enum_Filled) //如果卖开委托成交
{
 Commentary("【SK信号:卖开委托成交!】");
 SKFLG = 0; //卖开标志归0
}
 }
 If(BPFLG == 1) //如果有买平委托
 {
If(F_OrderStatus(BPID) == Enum_Filled) //如果买平委托成交
{
 Commentary("【BP信号:买平委托成交!】");
 BPFLG = 0; //买平标志归0
}
 }
}
//------------------------委托处理------------------------//
If(OPFLG == 1) //委托处理
{
 If(BKDFLG == 1) //如果已开启买开处理
 {
If(BKFLG == 0) //如果没有买开委托
{
 BKM = N; //买开委托手数
 BKP = ASKP; //买开委托价格
 Commentary("【BK信号:买开委托发出!】");
 BKID = A_SendOrder(Enum_Buy,Enum_Entry,BKM,BKP); //发出买开委托
 BKFLG = 1; //已发出买开委托
}
 }
 If(SPDFLG == 1) //如果已开启卖平处理
 {
If(SPFLG == 0) //如果没有卖平委托
{
 If(BRP > 0) //如果有多头可用持仓
 {
SPM = BRP; //卖平委托手数
SPP = FLP; //卖平委托价格
Commentary("【SP信号:卖平委托发出!】");
SPID = A_SendOrder(Enum_Sell,SH,SPM,SPP); //发出卖平委托
SPFLG = 1; //已发出卖平委托
 }
}
 }
 If(SKDFLG == 1) //如果已开启卖开处理
 {
If(SKFLG == 0) //如果没有卖开委托
{
 SKM = N; //卖开委托手数
 SKP = BIDP; //卖开委托价格
 Commentary("【SK信号:卖开委托发出!】");
 SKID = A_SendOrder(Enum_Sell,Enum_Entry,SKM,SKP); //发出卖开委托
 SKFLG = 1; //已发出卖开委托
}
 }
 If(BPDFLG == 1) //如果已开启买平处理
 {
If(BPFLG == 0) //如果没有买平委托
{
 If(SRP > 0) //如果有空头可用持仓
 {
BPM = SRP; //买平委托手数
BPP = RLP; //买平委托价格
Commentary("【BP信号:买平委托发出!】");
BPID = A_SendOrder(Enum_Buy,SH,BPM,BPP); //发出买平委托
BPFLG = 1; //已发出买平委托
 }
}
 }
}
End