能否共享个浮动止盈策略
大家有没有易盛的浮动止盈策略代码,能否共享一个,不用很高级,最普通的就行,多谢了。 //------------------------------------------------------------------------// 简称: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
以前写的仅供交流。。 pagecat 发表于 2013-3-8 21:10 static/image/common/back.gif
//------------------------------------------------------------------------
// 简称:tradeforfloats
...
真是太感谢了,我去好好学学,看能不能看明白。 好帖子要顶
基本上看不懂
这么复杂?没有说明完全看不懂
Numeric zMaxPerfit(0); //最大盈利,创新高才打印
If(A_BuyPosition == 0 && A_SellPosition == 0 && A_FirstQueueOrderNo == -1)
{
zMaxPerfit = 0;
}
If(A_SellPosition > 0 && A_SellAvgPrice - Close > zMaxPerfit)
{
zMaxPerfit = A_SellAvgPrice - Close;
}
If(A_BuyPosition > 0 && Close - A_BuyAvgPrice > zMaxPerfit )
{
zMaxPerfit = Close - A_BuyAvgPrice;
}
If((zMaxPerfit - (Close - A_BuyAvgPrice) >= 阀值 && A_BuyPosition > 0)
{
CoverAllSymbols;
}
If(A_SellPosition > 0 && zMaxPerfit - (A_SellAvgPrice - Close) >= 阀值 )
{
CoverAllSymbols;
}
另外,每次开新仓,必须清零zMaxPerfit就行了
页:
[1]