欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件策略编写求助区 → 这是一个基于交易开拓者的交易系统,请问哪位大神能帮忙改写成金字塔的??

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4451人关注过本帖树形打印复制链接

主题:这是一个基于交易开拓者的交易系统,请问哪位大神能帮忙改写成金字塔的??

帅哥哟,离线,有人找我吗?
太极熊猫
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:90 积分:0 威望:0 精华:0 注册:2014/4/24 18:00:15
这是一个基于交易开拓者的交易系统,请问哪位大神能帮忙改写成金字塔的??  发帖心情 Post By:2017/5/25 6:49:27 [只看该作者]

//----------------------------------------------------------------------//
// 策略说明:
// 本策略基于价格与均线建立了一套可变的支撑线阻力线系统, 通过价格与支撑线阻力线的关系进行交易
//  
// 系统要素:
// 均线与价格组成的支撑线阻力线系统
// 1. 当价格死叉均线时, 上根k线的低点为支撑线初始化, 当价格金叉均线时, 上根k线的高点为阻力线初始化
// 2. 当价格低于均线时不断更新支撑线, 当价格高于均线时不断更新阻力线
// 3. 当价格金叉均线又死叉均线时记录上根阻力线作为做多的价格线, 当价格死叉均线又金叉均线时记录上根支撑线作为做空的价格线
// 入场条件:
// 1. 当价格高于做多的价格线时做多
// 2. 当价格低于做空的价格线时做空
// 出场条件: 
// 1. 基于ATR的保护性止损
// 2. 基于ATR的跟踪止损
//
// 注: 当前策略仅为做多系统, 如需做空, 请参见CL_Moving_Average_Sup_and_Res_S
//----------------------------------------------------------------------//

Params
    Numeric MALength(10); //均线值
    Numeric ATRLength(10); //ATR的值
Numeric ProtectStopATRMulti(0.5); //保护性止损的ATR乘数
Numeric TrailStopATRMulti(2.5); //跟踪止损的ATR乘数
Vars
NumericSeries MA(0); //均线
NumericSeries ATR(0); //ATR
NumericSeries SupportLine(-9999999); //支撑线
NumericSeries ResistanceLine(9999999); //阻力线
BoolSeries CrossFlagForL(False); //收盘价与均线交叉的状态记录L
BoolSeries CrossFlagForS(False); //收盘价与均线交叉的状态记录S

BoolSeries SupportFlag(False); //支撑线为真的标志
BoolSeries ResistanceFlag(False); //阻力线为真的标志
NumericSeries EntryPriceL(0); //开仓入场价
NumericSeries HighAfterEntry; //持仓期间最高点的记录

NumericSeries ProtectStopL; //基于ATR的保护性止损
Numeric TrailStopL; //基于ATR的跟踪止损

NumericSeries MP; //MarketPosition状态记录
Begin

// 集合竞价和小节休息过滤
If(!CallAuctionFilter()) Return;

//系统设置
//均线与ATR计算
MA = AverageFC(C,MALength);
ATR = AvgTrueRange(ATRLength);
//计算入场线
// 1. 当价格死叉均线时, 上根k线的低点为支撑线初始化, 当价格金叉均线时, 上根k线的高点为阻力线初始化
// 2. 当价格低于均线时不断更新支撑线, 当价格高于均线时不断更新阻力线
// 3. 当价格金叉均线又死叉均线时记录上根阻力线作为做多的价格线
CrossFlagForL = CrossUnder(C,MA);
CrossFlagForS = CrossOver(C,MA);
If(CrossFlagForL == True)
{
If(ResistanceFlag[1] == True)
{
EntryPriceL = ResistanceLine[1];
ResistanceFlag = False;
}
SupportFlag = True;
SupportLine = Low;
}

If(CrossFlagForS == True)
{
If(SupportFlag[1] == True)
{
SupportFlag = False;
}
ResistanceFlag = True;
ResistanceLine = High;
}
//PlotNumeric("MA",MA);
//PlotNumeric("EntryPriceL",EntryPriceL);

//更新支撑与阻力线
If( C > MA )
{
If(High > ResistanceLine[1]) ResistanceLine = High;
}
Else If(C < MA)
{
If(Low < SupportLine[1]) SupportLine = Low;
}
//PlotNumeric("ResistanceLine",ResistanceLine);
//PlotNumeric("SupportLine",SupportLine);
//系统入场
//当上根K线的收盘价格金叉多头入场价格线后, 在本根K线开盘价做多
If(MarketPosition <> 1 and EntryPriceL[1] <> 0 and EntryPriceL[2] <> 0)
{
If(Close[2] < EntryPriceL[2] and Close[1] >= EntryPriceL[1] And Vol > 0)
{
Buy(0,Open);
//基于ATR的保护性止损
ProtectStopL = Low[1] - ProtectStopATRMulti * ATR[1];
}
}
//系统出场

If(BarsSinceEntry == 0)
HighAfterEntry = High;
Else
HighAfterEntry = Max(HighAfterEntry[1],High);

//基于ATR的跟踪止损
TrailStopL = HighAfterEntry[1] - TrailStopATRMulti * ATR[1];
If(MarketPosition == 1 and mp[1] == 1 And Vol > 0)
{
//基于ATR的保护性止损
if(L <= ProtectStopL[1] and ProtectStopL[1] >= TrailStopL)
{
Sell(0,Min(Open, ProtectStopL[1]));
}
//基于ATR的跟踪止损
Else if(L<=TrailStopL)
{
Sell(0,Min(Open, TrailStopL));
}
}
//PlotNumeric("ProtectStopL",ProtectStopL);
//PlotNumeric("TrailStopL",TrailStopL);
MP = MarketPosition;
End


 回到顶部
帅哥哟,离线,有人找我吗?
小不点
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:172 积分:0 威望:0 精华:0 注册:2016/2/28 16:49:01
  发帖心情 Post By:2017/6/9 22:06:36 [只看该作者]

这代码是开拓者TB上写的

 回到顶部