龙听期货论坛's Archiver

龙听 发表于 2021-3-16 06:31

【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] ;

龙听 发表于 2021-3-16 06:40

视频地址:[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]

龙听 发表于 2021-3-16 06:42

附效果图:【因为设置了10个BAR强制出玚,导致大趋势频繁进场,明天我将优化一下,在趋势中持有】
[img]http://www.qhlt.cn/attachments/month_2103/21031606303162e463b3a0eb57.png[/img]

龙听 发表于 2021-3-16 06:45

这里是今天用到的关键词。
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]

未来货 发表于 2021-3-16 09:11

Thank you very much

晓东 发表于 2021-5-21 13:06

回复

下次了 发表于 2021-8-7 03:46

学习

腾云日记 发表于 2022-1-3 04:12

{:biggrin:}

毒吻仔 发表于 2022-5-4 02:34

谢谢风向 

本来周 发表于 2022-7-24 11:34

多谢分享

顺顺顺 发表于 2022-8-24 14:21

支持一下

大鸟怪 发表于 2023-6-28 16:48

谢谢老师

页: [1]