以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- [原创]请求老师,编写问题 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=166120) |
-- 作者:大牛来了 -- 发布时间:2018/10/25 16:32:28 -- [原创]请求老师,编写问题 亲爱的老师:
我们在编写代码的时候碰到几个问题,我们做日内交易,请老师代为编写
希望达到的效果如下:
Q1: 检测-->账户盈利-->达到-->10万港币-->立刻停止交易。
Q2:检测-->账户亏损-->达到-->10万港币-->立刻停止交易。
Q3:当账户持续盈利时,随时资金的增长,每增加10万港币,下次开仓增加1手。(举例:初始资金为30万账户-->初始开仓为1手-- >当账户资金 大于 40万 -->在原来的基础上,加1,也就是2手。同时也要考虑,出场平仓也要全部平仓)
|
-- 作者:wenarm -- 发布时间:2018/10/25 16:59:34 -- 图表还是后台。你Q3和前两个矛盾。 |
-- 作者:大牛来了 -- 发布时间:2018/10/25 17:09:31 -- 图表交易 |
-- 作者:大牛来了 -- 发布时间:2018/10/25 17:12:13 -- 以下是引用wenarm在2018/10/25 16:59:34的发言:
图表还是后台。你Q3和前两个矛盾。 Q3,是检测账户资金,资金达到,在下次允许开仓时,叠加。 Q1和Q2 优先 于 Q3,Q3作为后置判断,比如前一日盈利10万,那么当日停止交易。 从第2日开始,账户资金大于40万,开始2手开仓 [此贴子已经被作者于2018/10/25 17:12:47编辑过]
|
-- 作者:wenarm -- 发布时间:2018/10/26 1:24:06 -- 初始利润:VALUEWHEN(time=CLOSETIME(0),NETPROFIT); 日净利润:NETPROFIT-初始利润; IF ABS(NETPROFIT-初始利润)>100000 THEN EXIT; 手数:1+if(NETPROFIT<=0,0,INTPART((ASSET-300000)/100000)); if 开仓条件 then BEGIN buy(1,手数,MARKET); end if 平仓条件 then BEGIN
sell(1,HOLDING,MARKET); end |
-- 作者:大牛来了 -- 发布时间:2018/10/29 15:25:34 -- 以下是引用wenarm在2018/10/26 1:24:06的发言:
初始利润:VALUEWHEN(time=CLOSETIME(0),NETPROFIT);
日净利润:NETPROFIT-初始利润;
IF ABS(NETPROFIT-初始利润)>100000 THEN EXIT; 手数:1+if(NETPROFIT<=0,0,INTPART((ASSET-300000)/100000));
if 开仓条件 then BEGIN
buy(1,手数,MARKET); end if 平仓条件 then BEGIN
sell(1,HOLDING,MARKET); end 你好,老师,经过测试,好像不奏效呀。 测试的时候,开多仓变成了2手,开空仓,永远只有1手。求帮助解决啊 |
-- 作者:大牛来了 -- 发布时间:2018/10/29 15:32:27 -- 没有效果呀,是不是哪里出错了呢 没有效果呀,是不是哪里出错了呢 |
-- 作者:wenarm -- 发布时间:2018/10/29 16:41:08 -- 上面的算法没有区分考虑多空的情况,其手数就是按当前资产减去初始资产三十万计算的。 你说的最多两手多头,你可以在图表中看下当前资产应该是没有过50万。所以手数才是2手。 |
-- 作者:大牛来了 -- 发布时间:2018/10/29 19:36:42 -- [原创]求回复啊 可能是我描述的不够清楚
我的意思在,每日交易,盈利或者亏损到一定的金额,就停止交易。我们可以假设每日账户盈利2万或者1万,亏损到2万或者1万,即刻停止交易。
上面所说的资金没增长10万,再下一个交易日,在原来的基础上1手,再加1手仓位,以此类推。比如,30万资金增长到40万,-->1+1手。 40万增长到50万,-->1+1+1手,开仓是3手。封顶5手。 包括wen老师说的,不是多头加仓,而且在下一个交易日,无论多头、空头,都是按照资金的增长,加大开仓手续,5手封顶啊
或者,不一定按照每增加10万,加仓1手。也可以按照账户资金的百分之多少开仓,请老师帮忙编写一下,确实遇到难题了 |
-- 作者:FireScript -- 发布时间:2018/10/30 11:01:27 -- 1.我简单注释下前面的代码,你先看下你是否有根据自己的情况修改这些数值来适应。 初始利润:VALUEWHEN(time=CLOSETIME(0),NETPROFIT); 日净利润:NETPROFIT-初始利润; IF ABS(NETPROFIT-初始利润)>100000 THEN EXIT;//这里是按照盈亏10w就停止交易处理的 手数:1+if(NETPROFIT<=0,0,INTPART((ASSET-300000)/100000));//这里是按照初始资金是30W处理的 if 开仓条件 then BEGIN buy(1,手数,MARKET); end if 平仓条件 then BEGIN sell(1,HOLDING,MARKET); end 2.手数还有个逻辑要处理下。如果我从30万涨到50万,但是又降到了40万,那么下单手数是?因为按照你的逻辑涨10w加一手,这个对比是和初始的30万比,还是和之前的50万对比呢?
|