【MultiCharts(MC)程序化(量化)网上培训学习系列】第143节:持仓管理系列之一:目标止盈/损、时间止盈/损
[attach]27643[/attach]【MultiCharts(MC)程序化(量化)网上培训学习系列】第143节:持仓管理系列之一:目标止盈/损、时间止盈/损
1、注册论坛会员免费看公开课视频源码;升级至付费会员免回复查看策略源码、文档;升级至prime会员无阻碍畅游全站期货策略、源码、回测、优化、视频、教程、图书、文档,参考:[url]http://www.qhlt.cn/thread-37840-1-1.html[/url];
2、通过期货论坛推荐新开立期货账号,可免费获得付费会员或prime会员资格并享受账户特惠政策,参考:[url]http://www.qhlt.cn/thread-25049-1-1.html[/url];
3、通过期货论坛开立期货账号并绑定MC享受专属优惠政策:[url]http://www.qhlt.cn/thread-80442-1-1.html[/url];
4、代写与求助:[url]http://www.qhlt.cn/forum-109-1.html[/url];
5、期货论坛策略源码区:[url]http://www.qhlt.cn/forum-109-1.html[/url] ;策略精选推荐优化区:[url]http://www.qhlt.cn/forum-874-1.html[/url];
6、期货论坛官方MC量化策略群,对视频中策略有想法、建议、优化以结交量化好友,动动手,扫二维码加入微信群,跟一众量化好友切磋吧:[url]http://www.qhlt.cn/thread-262-1-1.html[/url] ; 视频地址:[mp4]http://mp4.qhlt.club/Rec%200143.mp4[/mp4]
程式码部分:
第一部分:进场我将一直使用四周规则来进场,为了方便日后的写码,这里加上四周的进场规则:trading system
**** Hidden Message *****
另写一个持仓管理策略:position manage-1 target exit
目标金额止盈程式码:[code]//target dollar amount exit
SetStopContract;
SetProfitTarget(1000);
[/code]若是用目标止盈会有一个问题,若是刚进入就亏损,就会理论上一直持有,实现实盘中会因为换合约强制平掉。我进行两个方面的限制就可以了,也就是加入了强行出场的办法,一是时间出场,二是止损也场;
时间出场:【进场后10个BAR强制出场】
**** Hidden Message *****
整体资金管理程式码:
**** Hidden Message *****关注程序化课程微信公众号(每天上架新策略、跟着视频学编程)
[img]http://www.qhlt.cn/diypic/Public.png[/img] 附效果图:【因为设置了10个BAR强制出玚,导致大趋势频繁进场,明天我将优化一下,在趋势中持有】
[img]http://www.qhlt.cn/attachments/month_2103/21031606303162e463b3a0eb57.png[/img] 这里是今天用到的关键词。
SetProfitTarget
当从仓位进场后的最大获利达到特定金额时,平仓部分或所有仓位。依仓位的多空不同使用对应的限价单进行委托。
由 SetStopPosition 和 SetStopContract 或 SetStopShare 决定停损是所有仓位合并计算或是个别仓位分开计算;默认是所有仓位合并计算。
指令是在Bar内就会即时触发,而不是仅仅在Bar结束时才执行,所以可以在进场的当根Bar马上出场。
用法
SetProfitTarget(Amount)
参数说明: Amount —— 数值表达式,要停利的获利金额
注意
实际委托价格会考虑进场及出场的手续费和滑价成本。
范例
当整体仓位的最大获利达到100元时,产生平仓所有仓位的委托:
SetStopPosition;
SetProfitTarget(100);
当个别仓位的最大获利达到10元时,产生平仓该进场仓位的委托:
SetStopContract;
SetProfitTarget(10);
------------------------------------------------------------------------------------------------
SetStopContract
指定策略出场函数
个别仓位分开计算: SetStopLoss , SetProfitTarget , SetBreakEven , SetDollarTrailing , and SetPercentTrailing.
用法
SetStopContract
注意
若 SetStopPositon, SetStopContract, 和 SetStopShare 未被声明,默认出场函数,是所有仓位合并计算。
若 SetStopPositon, SetStopContract, 和 SetStopShare 被多次声明,或是在同一个图表上的不同信号分别声明,会以最后一次的声明状态为最后状态。
范例
指定SetStopLoss策略出场函数是个别仓位分开计算,当个别仓位损失达10元时,产生平仓委托:
SetStopContract;
SetStopLoss(10);
----------------------------------------------------------------------------------
Highest
返回一定柱状线范围内的最高价格。
语法
Highest(Price, Length)
返回(双精度数)
Length 条柱状线范围内出现的最高 Price。
参数
名称
类型
说明
Price
数值
指定要评估的柱状线值(价格、函数或公式)。
Length
数值
设置要考虑的柱状线数量。
备注
输入参数 Price 可以是一个柱状线值,如 Close、High、Low、Open 或 Volume。也可以是任何数学计算,如 (High + Low) / 2 或一个数值函数,如 RSI、Stochastic 或 ADX。
示例
以下将最后 20 根柱状线中计算 Close + Open 得到的最高值赋予 Value1:
Value1 = Highest(Close + Open, 20);
----------------------------------------------------------------------------------
Lowest
返回一定柱状线范围内的最低价格。语法[p=30, 2, left]Lowest[color=#000000](Price, Length)[/color][/p]返回(双精度数)
过去 Length 条柱状线范围内出现的最低 Price。参数[table=98%]
[tr][td][p=30, 2, left]名称[/p][/td][td][p=30, 2, left]类型[/p][/td][td][p=30, 2, left]说明[/p][/td][/tr]
[tr][td]
Price [/td][td]
数值[/td][td]
指定要评估的柱状线值(价格、函数或公式)。[/td][/tr]
[tr][td]
Length [/td][td]
数值[/td][td]
设置要考虑的柱状线数量。[/td][/tr]
[/table]备注
输入参数 Price 可以是一个柱状线值,如 Close、High、Low、Open 或 Volume。也可以是任何数学计算,如 (High + Low) / 2 或一个数值函数,如 RSI、Stochastic 或 ADX。示例
以下将最后 20 根柱状线中的最低 Close 值赋予 Value1:[p=30, 2, left]Value1 = [color=#800080]Lowest[/color]([color=#0000ff]Close[/color], 20);[/p] Thank you very much 回复 学习 {:biggrin:} 谢谢风向 多谢分享 支持一下 谢谢老师
页:
[1]