Params
String sym("lu2211.INE");
Numeric N(5);
Vars
Global Array<integer> OrderIds;
Global Integer entryID;
Global Integer DelID;
Global Integer ordL1; //首张多单ID
Global Integer ordS1; //首张空单ID
Global Map<Integer,Order> array_order;
Global Numeric midioff;
Global Order myorder;
Array<Integer> Array_temp;
Defs
Integer LogFile(String str)
{
LogFile("D:\\"+FormulaName()+"["+dateTimeToString(SystemDateTime)+"] "+ str);
Return 0;
}
Events
//此处实现事件函数
//初始化事件函数,策略运行期间,首先运行且只有一次
OnInit()
{
FileDelete("D:\\"+FormulaName());
LogFile("Let's Go!");
SubscribeBar( sym,"TICK",SystemDateTime);
SubscribeBar( sym,"10s",SystemDateTime);
entryID = CreateTimer(5000);
}
OnReady()
{
midioff=PriceScale*minmove;
}
OnTimer(Integer id,Integer millsecs)
{
Position my_pos;
A_GetPosition(my_pos);
If(my_pos.longCurrentVolume+my_pos.longActiveVolume+my_pos.longActiveCloseVolume+
(my_pos.shortCurrentVolume+my_pos.shortActiveVolume+my_pos.shortActiveCloseVolume)<6)
{
LogFile("-----------------------------");
LogFile(DateTimeToString(Date+time));
LogFile("多头当前持仓"+Text(my_pos.longCurrentVolume));
LogFile("多头未成交量"+Text(my_pos.longActiveVolume));
LogFile("多头未成交平仓量"+Text(my_pos.longActiveCloseVolume));
LogFile("空头当前持仓"+Text(my_pos.shortCurrentVolume));
LogFile("空头未成交量"+Text(my_pos.shortActiveVolume));
LogFile("空头未成交平仓量"+Text(my_pos.shortActiveCloseVolume));
If(id==entryID)
{
If(Data1.close>data1.Open)
{
A_SendOrderEx(Enum_Buy,Enum_Entry,1,Q_askPrice,orderIds);
ordL1=orderIds[0];
DelID=CreateTimer(3000);
LogFile("-----------------------------");
LogFile(DateTimeToString(Date+time));
LogFile("委买多1手,委托价: "+Text(Q_BidPrice));
LogFile("委托单编号: "+Text(orderIds[0]));
}
If(Data1.close<data1.Open)
{
A_SendOrderEx(Enum_Sell,Enum_Entry,1,Q_bidPrice,orderIds);
ordS1=orderIds[0];
DelID=CreateTimer(3000);
LogFile("-----------------------------");
LogFile(DateTimeToString(Date+time));
LogFile("委卖空1手,委托价: "+Text(Q_AskPrice));
LogFile("委托单编号: "+Text(orderIds[0]));
}
}
}
If(id==DelID)
{
Order myorder;
A_GetOrder(orderIds[0],myorder);
LogFile("-----------------------------");
LogFile(DateTimeToString(Date+time));
LogFile("委托单编号: "+Text(orderIds[0]));
LogFile("委托单状态: "+Text(myorder.status));
If(myorder.status==Enum_Declared&&myorder.orderId==ordL1)
{
A_DeleteOrder(ordL1);
LogFile("-----------------------------");
LogFile(DateTimeToString(Date+time));
LogFile("委托已撤,编号: "+Text(orderIds[0]));
}
Else If(myorder.status==Enum_Declared&&myorder.orderId==ordS1)
{
A_DeleteOrder(ordS1);
LogFile("-----------------------------");
LogFile(DateTimeToString(Date+time));
LogFile("委托已撤,编号: "+Text(orderIds[0]));
}
StopTimer(DelID);
}
}
OnFill(FillRef ordFill)
{
If(GetMapKeys(array_order,Array_temp) > 0)
{
Integer i;
For i=0 to GetArraySize(Array_temp)-1
{
If(array_order[Array_temp[i]].side == Enum_Buy)
{
A_SendOrderEx(Enum_Sell,Enum_Exit,1,array_order[Array_temp[i]].price + N*midioff,OrderIds); //多单5跳止盈
}Else
{
A_SendOrderEx(Enum_Buy,Enum_Exit,1,array_order[Array_temp[i]].price - N*midioff,OrderIds); //空单5跳止盈
}
}
}
}
OnBar(ArrayRef<Integer> indexs)
{
}
是我的浏览器自动翻译非汉语,所以我看到的代码都是汉语,我以为出错了
请各位老师看看哪写的不对,运行或打开K线就会把TB关闭,dmp文件已上传
我晕 ctrl+v,还是这样