查看: 3204|回复: 6
打印 上一主题 下一主题

[公式] 能否共享个浮动止盈策略

[复制链接]
跳转到指定楼层
1
发表于 2013-3-8 11:53:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家有没有易盛的浮动止盈策略代码,能否共享一个,不用很高级,最普通的就行,多谢了。





2
发表于 2013-3-8 21:10:08 | 只看该作者
//------------------------------------------------------------------------
// 简称: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


以前写的  仅供交流。。
3
 楼主| 发表于 2013-3-8 21:16:23 | 只看该作者
pagecat 发表于 2013-3-8 21:10
//------------------------------------------------------------------------
// 简称:tradeforfloats
...

真是太感谢了,我去好好学学,看能不能看明白。
4
发表于 2013-10-31 17:53:45 | 只看该作者
好帖子要顶
5
发表于 2013-11-22 11:32:08 | 只看该作者
基本上看不懂
6
发表于 2013-11-22 14:45:34 | 只看该作者
这么复杂?没有说明完全看不懂
7
发表于 2013-11-22 21:56:13 | 只看该作者
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就行了
您需要登录后才可以回帖 登录 | 注册入住  

本版积分规则

易家网  ©2015-2023  郑州期米信息技术有限公司版权所有  豫公网安备 41010502005136号 豫ICP备16010300号