以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 在图表交易系统中--波段交易如何写程序 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=72467) |
|
-- 作者:sysd008 -- 发布时间:2014/11/28 11:41:37 -- 在图表交易系统中--波段交易如何写程序 我的思路是这样的: 如果今天在盘中:实时价格大于昨天(最高价一最低价)那么就开盘做多; 如果今天在盘中:实时价格小于昨天(最高价一最低价)那么就开盘做空; 下午14点59分30秒全部清仓。 请教高手写个图表交易系统的程序
|
|
-- 作者:sysd008 -- 发布时间:2014/11/28 12:28:22 --
|
|
-- 作者:jinzhe -- 发布时间:2014/11/28 13:21:28 -- 如果今天在盘中:实时价格大于昨天(最高价一最低价)那么就开盘做多;
如果今天在盘中:实时价格小于昨天(最高价一最低价)那么就开盘做空;
下午14点59分30秒全部清仓。
h1:callstock(stklabel,vthigh,6,-1); l1:callstock(stklabel,vtlow,6,-1); if h>(h1-l1) then begin sellshort(1,0,market); buy(holding=0,1,market); end
if l<(h1-l1) then begin sell(1,0,market); buyshort(holding=0,1,market); end
if (currenttime>=145930 and islastbar) or(time=closetime(0) and not(islastbar)) then begin sell(1,0,market); sellshort(1,0,market); end |
|
-- 作者:sysd008 -- 发布时间:2014/11/29 8:56:17 -- 老师,刚刚用您的方法测试了一下:我还有以下几个问题 一、用(if (currenttime>=145930 and islastbar) or(time=closetime(0) and not(islastbar)) then begin)这个语句的话,是使用未来函数,在测试时不会平仓。想请老师,另外给请我加一段语问,在测试时使用。也就是如果当天触发了成交的条件,那么就以当天收盘价做平仓条件(无论是当天只有空单,无论是当天只有多单,无论是当天空单和多单都有),这样便于测试。 二、老师这个交易程序里,写的程序是只能一天当中有一手空单或一手多单。我想还要多考虑一种情况,那就是:如果当天的实时价格不但触发了做多,同时也触发了做空。比如:当天的最高价3030 ,当天的最低价2900 ,而当天做多的触发条件是3020,当天做空的触发条件是2950,一般当天的收盘价会出现三种情况,第一种当天收盘价大于多单触发价(收盘价>3020);第二种当天收盘价小于多单触发价大于空单触发价(3020>收盘价>2950);第三种当天收盘价小于空单位触发价(收盘价<2950)。 我以第二种情况为例,表述一下:如果最后当天收盘价是3000。假如当天是先触发了多单,后触发了空单,那么以当天收盘价作平仓后的赢亏情况 按我是想法就会是这样的:多单亏损20(3000-3020=-20),空单亏损50(2950-3000=-50)当天总共亏损70。 如果按照老师的程序走的话,就会是这样的,先触发多单,到后面价格跌到触发空单时,那么先会把多单平仓,先是亏损70(3020-2950),后面空单亏损50(2950-3000=-50)是一样的,但当天总共亏损就达到120。 请教老师怎么才能写成我想表述的那种交易模型,非常感谢!
|
|
-- 作者:sysd008 -- 发布时间:2014/11/29 8:56:51 -- 老师,刚刚用您的方法测试了一下:我还有以下几个问题 一、用(if (currenttime>=145930 and islastbar) or(time=closetime(0) and not(islastbar)) then begin)这个语句的话,是使用未来函数,在测试时不会平仓。想请老师,另外给请我加一段语问,在测试时使用。也就是如果当天触发了成交的条件,那么就以当天收盘价做平仓条件(无论是当天只有空单,无论是当天只有多单,无论是当天空单和多单都有),这样便于测试。 二、老师这个交易程序里,写的程序是只能一天当中有一手空单或一手多单。我想还要多考虑一种情况,那就是:如果当天的实时价格不但触发了做多,同时也触发了做空。比如:当天的最高价3030 ,当天的最低价2900 ,而当天做多的触发条件是3020,当天做空的触发条件是2950,一般当天的收盘价会出现三种情况,第一种当天收盘价大于多单触发价(收盘价>3020);第二种当天收盘价小于多单触发价大于空单触发价(3020>收盘价>2950);第三种当天收盘价小于空单位触发价(收盘价<2950)。 我以第二种情况为例,表述一下:如果最后当天收盘价是3000。假如当天是先触发了多单,后触发了空单,那么以当天收盘价作平仓后的赢亏情况 按我是想法就会是这样的:多单亏损20(3000-3020=-20),空单亏损50(2950-3000=-50)当天总共亏损70。 如果按照老师的程序走的话,就会是这样的,先触发多单,到后面价格跌到触发空单时,那么先会把多单平仓,先是亏损70(3020-2950),后面空单亏损50(2950-3000=-50)是一样的,但当天总共亏损就达到120。 请教老师怎么才能写成我想表述的那种交易模型,非常感谢! |
|
-- 作者:sysd008 -- 发布时间:2014/11/29 9:24:03 -- 老师,刚刚用您的方法测试了一下:我还有以下几个问题 <!--[if !supportLists]-->一、<!--[endif]-->用(if (currenttime>=145930 and islastbar) or(time=closetime(0) and not(islastbar)) then begin)这个语句的话,是使用未来函数,在测试时不会平仓。想请老师,另外给请我加一段语问,在测试时使用。也就是如果当天触发了成交的条件,那么就以当天收盘价做平仓条件(无论是当天只有空单,无论是当天只有多单,无论是当天空单和多单都有),这样便于测试。 <!--[if !supportLists]-->二、<!--[endif]-->老师这么写的话,是以下一个开盘日的开盘价作为成交价了,如何能以实时价等于这个触发价(最高价-最低价),来成交。 三、老师这个交易程序里,写的程序是只能一天当中有一手空单或一手多单。我想还要多考虑一种情况,那就是:如果当天的实时价格不但触发了做多,同时也触发了做空。比如:当天的最高价3030 ,当天的最低价2900 ,而当天做多的触发条件是3020,当天做空的触发条件是2950,一般当天的收盘价会出现三种情况,第一种当天收盘价大于多单触发价(最高价>收盘价>3020);第二种当天收盘价小于多单触发价大于空单触发价(3020>收盘价>2950);第三种当天收盘价小于空单位触发价(最低价<收盘价<2950)。 我以第二种情况为例,表述一下:如果最后当天收盘价是3000。假如当天是先触发了多单,后触发了空单,那么以当天收盘价作平仓后的赢亏情况 按我想法就会是这样的:多单亏损20(3000-3020=-20),空单亏损50(2950-3000=-50)当天总共亏损70。 如果按照老师的程序走的话,就会是这样的,先触发多单,到后面价格跌到触发空单时,那么先会把多单平仓,先是亏损70(3020-2950),后面空单亏损50(2950-3000=-50)是一样的,但当天总共亏损就达到120。 请教老师怎么才能写成我所表述的那种交易模型,非常感谢!
|
|
-- 作者:sysd008 -- 发布时间:2014/12/8 21:51:44 -- 这个怎么处理,没有高手做答啊 |
|
-- 作者:sysd008 -- 发布时间:2014/12/8 22:03:31 -- 请问老师,如何一天中既触发了做多,又触发了做空,如何加一个IF语句,放在中间 |
|
-- 作者:jinzhe -- 发布时间:2014/12/9 9:04:08 -- 只要条件满足就会一天之内有开多开空信号都有 |
|
-- 作者:jinzhe -- 发布时间:2014/12/9 9:04:46 --
if cross(ma5,ma10) then begin if cross(ma10,ma5) then begin
比如像这样简单的MA均线系统,就能做到一天之内开多开空都有信号。 你的系统没信号只因为条件不满足 |