|
//------------------------------------------------------------------------
// 简称:tradeforfloats
// 名称:tradeforfloats
// 类别: 交易指令
// 类型: 用户应用
//------------------------------------------------------------------------
Params
//参数定义
Numeric floatnum(3);//止盈止损点数
Numeric outnum(0.2);//平仓超价点数
Numeric h_price(0);//输入最高价,程序中途关闭时
Numeric l_price(999999);//输入最低价,程序中途关闭时
GlobalVars
//全局变量定义
Numeric op(0);//执行一次最高最低价操作
Numeric hh(0);
Numeric ll(999999);
Numeric tt(0);
RealInit
//在模拟交易切换到真实交易时调用该段
op=0;
Vars
//局部变量定义
Begin
//策略执行区
If(G_MarketPosition(Symbol)==1&&G_FirstQueueOrderNo(Symbol)==-1)
{
if(op==0)
{
hh=h_price;
ll=l_price;
op=1;
}
Else
{
If(hh==0)
{
hh=G_BuyAvgPrice;
}
Else
{
If(Close>hh)
{
hh=Close;
}
If(hh-Close>=floatnum)
{
G_SendOrder(Enum_Sell,Enum_Exit,G_BuyPosition,Q_BidPrice-outnum,Symbol);
PlotText(high,"多平"+Text(Q_BidPrice-outnum));
tt=CurrentTime;
op=0;
}
}
}
}
If(G_MarketPosition(Symbol)==-1&&G_FirstQueueOrderNo(Symbol)==-1)
{
if(op==0)
{
hh=h_price;
ll=l_price;
op=1;
}
Else
{
If(ll==999999)
{
ll=G_SellAvgPrice;
}
Else
{
if(Close<ll)
{
ll=Close;
}
If(Close-ll>=floatnum)
{
G_SendOrder(Enum_Buy,Enum_Exit,G_SellPosition,Q_AskPrice+outnum,Symbol);
PlotText(Low,"空平"+Text(Q_AskPrice+outnum));
tt=CurrentTime;
op=0;
}
}
}
}
if(G_MarketPosition(Symbol)!=0&&G_FirstQueueOrderNo(Symbol)!=-1&&tt!=0&&TimeDiff(tt,CurrentTime)>=5)
{
Integer orderNo = G_FirstQueueOrderNo(Symbol);
if(A_OrderEntryOrExit(orderNo)==Enum_Exit)
{op=1;
if(orderNo!=-1)
{
While(orderNo != -1)
{
A_DeleteOrder(orderNo);
orderNo =G_NextQueueOrderNo(orderNo,Symbol);
}
}
}
}
if(G_MarketPosition(Symbol)==0)
{
hh=0;
ll=999999;
op=1;
tt=0;
}
if(G_MarketPosition(Symbol)==1)
{
Print("最高价:"+Text(hh)+"---回撤"+text(hh-Close));
}
if(G_MarketPosition==-1)
{
Print("最低价:"+Text(ll)+"---反弹"+text(Close-ll));
}
End
以前写的 仅供交流。。 |
|