以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 关于后台某些功能实现的求助 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=75523) |
-- 作者:黄玉天一 -- 发布时间:2015/2/10 11:19:29 -- 关于后台某些功能实现的求助 各位大虾: 后台想实现几个功能,求编写代码
1、隔夜策略如股指,当日15:10分平仓,第二天开盘9:15开进去; 2、后台某一策略日内累积亏损额>某一数值,则停止运作该策略。
万分感谢! |
-- 作者:jinzhe -- 发布时间:2015/2/10 11:22:09 -- if 平仓条件 and 持仓判断 then begin 平仓语句; extgbdataset(\'time\',time); end
if extgbdata(\'time\')=151000 and time=091600 then 开仓语句;
if tasset-ref(tasset,todaybar)>某一数值 then exit; |
-- 作者:黄玉天一 -- 发布时间:2015/2/10 11:29:28 -- if tasset-ref(tasset,todaybar)>某一数值 then exit;
这个Tasset是整个资产的意思吧,如果我跑10个策略,总计盈利10万,但我其中一个策略亏了3万,超过了我对单一策略2万亏损上限,但ASSET是增长的,这种情况下如何处理呢?大神 |
-- 作者:fly -- 发布时间:2015/2/10 13:16:45 -- 单一策略中,每次平仓都用全局变量,记录当时的盈利状况 如果超过某个特定值,则不再开仓---就像一个开关一样,打开就可以开仓,关闭则停止开仓
下面是举的一个后台全局变量的例子,供您参考
【金字塔使用技巧】----后台轮询,如何记录变量在最后一周期内的最大最小及开盘值 ma5:=ma(c,5); if islastbar then begin //在新一根K线上记录初始化 if barpos>extgbdata(\'t\') then begin extgbdataset(\'FIR\',ma5);//记录开盘值 extgbdataset(\'MAX1\',ma5);//记录最大 extgbdataset(\'MIN1\',ma5);//记录最小 extgbdataset(\'t\',barpos); end if barpos=extgbdata(\'t\') then begin if ma5>extgbdata(\'MAX1\') THEN extgbdataset(\'MAX1\',ma5); if ma5<extgbdata(\'MIN1\') THEN extgbdataset(\'MIN1\',ma5); end end
以下例子是个图标全局变量亏损控制的例子,记得要转成后台extgbdata格式的才能使用,对应的开平仓持仓相关函数,也要转化为后台的,提供给您参考 部分示例(2) : 日内累计亏损超限(如:超过3000)就停止交易 variable:zongkuisun=0; ma5:=ma(c,5); ma10:=ma(c,10); buycond:=cross(ma5,ma10); sellcond:=cross(ma10,ma5);
if holding>0 and sellcond then begin sell(1,1,limitr,c); zongkuisun:=zonngkuisun+min(0,c-enterprice); end
if zongkuisun>-3000 and holding=0 and buycond then buy(1,1,limitr,c);
if time=closetime(0) then begin sell(holding>0,1,limitr,o); zongkuisun:=0;//收盘时要重新赋值为0 end |