A_SendOrder(Enum_Sell,Enum_ExitToday,1,Q_BidPrice );
这样写有问题吗?
怎么在模拟账户中无法平仓,而且模拟账户有持仓的,是不是a函数不可以用在模拟账户中????
策略单元要用append之类输出调试
你这里print都不是实际的
因为这是打开k线输出的信息
换句话说 打开k线的图表 和 本身的单元 是两个东西
你这里显示false 是说明打开k线的图表false 而不是本身的单元false
显示是平仓了的,但是怎么在print中显示是失败呢????
//------------------------------------------------------------------------
// 简称: ZCZ_JXZY
// 名称: 均线止盈
// 编译版本 2023/07/12
//------------------------------------------------------------------------
Params
//此处添加参数
//=============================止盈均线周期
Numeric ZY_JX_N1(8);
Numeric ZY_JX_N2(30);
Vars
//此处添加变量
//=============================止盈均线周期
Series<Numeric>ZY_JX1(0);
Series<Numeric>ZY_JX2(0);
Numeric DT_CW;//多头真实仓位
Numeric KT_CW;//空头真实仓位
Events
OnReady()
{
}
//此处实现事件函数
//过滤条件定义
//定义
OnBar(ArrayRef<Integer> indexs)
{
//=========================止盈均线
ZY_JX1=Average(Close,ZY_JX_N1);//
PlotNumeric(ZY_JX1,ZY_JX1,0,RED);
ZY_JX2=Average(Close,ZY_JX_N2);//
PlotNumeric(ZY_JX2,ZY_JX2,0,Blue);
/* Numeric DT_CW = A_BuyPosition(1);
Numeric KT_CW = A_SellPosition(1);*/
Numeric DT_CW = A_BuyPosition;
Numeric KT_CW = A_SellPosition;
Commentary(多头真实持仓:+Text(DT_CW));
Commentary(空头真实持仓:+Text(KT_CW));
//==========================================================均线平多
if(DT_CW>=1 and CrossOver(ZY_JX1[1],C[1])) //真实持仓大于1,k线穿越均线,本次是最后一根k线
{
//平多止盈
Bool ret = A_SendOrder(Enum_Sell,Enum_Exit,DT_CW,Q_BidPrice);
Print(平多发单是否成功: + IIFString(ret, True, False));
Print(平多数量及价格:+text(DT_CW)+++text(Q_BidPrice));
}
//==========================================================均线平空
if(kT_CW>=1 and CrossOver(C[1],ZY_JX1[1]) ) //and BarStatus==2
{
//平空止盈
Bool ret2=A_SendOrder(Enum_Buy,Enum_Exit,kT_CW,Q_AskPrice);
Print(平空发单是否成功: + IIFString(ret2, True, False));
Print(平多数量及价格: + text(kT_CW)+++text(Q_AskPrice));
}
//==============================================================
}
//------------------------------------------------------------------------
可以
账户挂了没
是否是最新bar
等等多种可能
提供更多信息,另外用A函数要掌握自己调试