以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://www.weistock.com/bbs/list.asp?boardid=4) ---- 基于开盘价的日内ATR区间突破的公式,求助 (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=10576) |
-- 作者:leoyangliu -- 发布时间:2012/3/15 9:40:09 -- 基于开盘价的日内ATR区间突破的公式,求助 基于开盘价的日内ATR区间突破的公式,啊有哪位兄弟有?小弟,刚看金字塔,要把交易开拓者里的转化到金字塔里 以下内容为程序代码: 1 //------------------------------------------------------------------------ 2 // 简称: ATRbreak 3 // 名称: ATRbreak 4 // 类别: 公式应用 5 // 类型: 用户应用 6 // 输出: 7 //------------------------------------------------------------------------ 8 9 10 11 // 基于开盘价的日内ATR区间突破 12 // 期指IF888 五分钟周期 13 14 15 Params 16 Numeric Mult(4); 17 Numeric Length(30); 18 Numeric ExitOnCloseMins(15.10); 19 Numeric StopPercent(0.5); 20 21 Vars 22 Numeric DayOpen; 23 Numeric UpperBand; 24 Numeric LowerBand; 25 Numeric MyPrice; 26 Numeric myExitPrice; 27 NumericSeries EntryLots; 28 NumericSeries ATRValue; 29 30 31 Begin 32 ATRValue=AvgTrueRange(Length); 33 34 DayOpen=OpenD(0); 35 UpperBand=DayOpen+ATRValue[1]*Mult; 36 LowerBand=DayOpen-ATRValue[1]*Mult; 37 EntryLots=IntPart(Portfolio_CurrentCapital*0.3/(Close*ContractUnit*BigPointValue*MarginRatio)); 38 39 If(MarketPosition!=1 && High>=UpperBand && Time<ExitOnCloseMins/100) 40 { 41 MyPrice=UpperBand; 42 If(Open>MyPrice) Myprice=Open; 43 Buy(1,MyPrice); 44 Return; 45 } 46 47 If(MarketPosition!=-1 && Low<=LowerBand && Time<ExitOnCloseMins/100) 48 {MyPrice=LowerBand; 49 If(Open<MyPrice) Myprice=Open; 50 SellShort(1,MyPrice); 51 Return; 52 } 53 54 55 If(MarketPosition==1) 56 { 57 If(Low<AvgEntryPrice*(1-StopPercent/100)) 58 { 59 myExitPrice=AvgEntryPrice*(1-StopPercent/100); 60 myExitPrice=Min(Open,myExitPrice); 61 Sell(0,myExitPrice); 62 } 63 } 64 65 If(MarketPosition==-1) 66 { 67 If(High>AvgEntryPrice*(1+StopPercent/100)) 68 { 69 myExitPrice=AvgEntryPrice*(1+StopPercent/100); 70 myExitPrice=Max(Open,myExitPrice); 71 BuyToCover(0,myExitPrice); 72 } 73 } 74 75 If(Time>=ExitonCloseMins/100) 76 { 77 Sell(0,Open); 78 BuyToCover(0,Open); 79 } 80 81 End 82 83 [此贴子已经被作者于2012-3-15 9:40:55编辑过]
|
-- 作者:just -- 发布时间:2012/3/15 9:43:05 -- 你干脆直接把你要实现的想法写出来,看看我们能不能帮你实现。 |
-- 作者:leoyangliu -- 发布时间:2012/3/15 9:54:17 -- 我是12年应届毕业生,本科学计算机的,没啥基础。现在在一个期货公司实习,刚来,头布置了任务,把TB里的程序转到金字塔里,程序是他给我的。看这个程序的意思就是:1、先求过去30个周期的最高点与最低点的差价的平均值 2,求得过去10天的平均开盘价,作为中间线,在加减1求的值,作为上下轨 3然后就是三个判断条件,一个当天最高价大于上轨,不是多仓,时间小于10.5,就对应一个操作。。。 PS这是头布置的任务,总共5个程序,两周内转到金字塔。要是完成,就能转正。我现在是零基础,才看了三四天,有点迷糊,so 求大侠帮助,感激涕零。 [此贴子已经被作者于2012-3-15 9:56:35编辑过]
|
-- 作者:jinzhe -- 发布时间:2012/3/15 10:12:42 -- 以下是引用leoyangliu在2012-3-15 9:54:17的发言:
我是12年应届毕业生,本科学计算机的,没啥基础。现在在一个期货公司实习,刚来,头布置了任务,把TB里的程序转到金字塔里,程序是他给我的。看这个程序的意思就是:1、先求过去30个周期的最高点与最低点的差价的平均值 2,求得过去10天的平均开盘价,作为中间线,在加减1求的值,作为上下轨 3然后就是三个判断条件,一个当天最高价大于上轨,不是多仓,时间小于10.5,就对应一个操作。。。 PS这是头布置的任务,总共5个程序,两周内转到金字塔。要是完成,就能转正。我现在是零基础,才看了三四天,有点迷糊,so 求大侠帮助,感激涕零。 [此贴子已经被作者于2012-3-15 9:56:35编辑过]
|
-- 作者:rushtaotao -- 发布时间:2012/3/15 10:29:45 -- 看了你们老大的要求,我真的感动流涕,我有一个好老大啊!!! |
-- 作者:just -- 发布时间:2012/3/15 10:31:48 -- //1、先求过去30个周期的最高点与最低点的差价的平均值 hh:=ref(hhv(h,30),1); if h>hh then hh:=h; |
-- 作者:Leon -- 发布时间:2012/3/15 11:02:04 -- 你才去4天,能看懂这个已经算厉害了,这个涉及到转换问题,帮你研究研究。楼主别着急,慢慢来。 |
-- 作者:leoyangliu -- 发布时间:2012/3/15 11:31:26 -- 谢谢 |
-- 作者:rushtaotao -- 发布时间:2012/3/15 12:40:31 -- //1、先求过去30个周期的最高点与最低点的差价的平均值 //2,以if01为例子,求得过去10天的平均开盘价,作为中间线,在加减1求的值,作为上下轨 //3然后就是三个判断条件,一个当天最高价大于上轨,不是多仓,时间小于10.5 nn:=barslast(date<>ref(date,1))+1; aa:ref(hhv(h,nn),1); if holding<=0 then buy(1,1,market); if time<100500 then buy(1,1,market);
同为实习生,必须得支持一下
[此贴子已经被作者于2012-3-15 12:41:23编辑过]
|
-- 作者:leoyangliu -- 发布时间:2012/3/15 13:34:15 -- 以下是引用rushtaotao在2012-3-15 12:40:31的发言:
//1、先求过去30个周期的最高点与最低点的差价的平均值 //2,以if01为例子,求得过去10天的平均开盘价,作为中间线,在加减1求的值,作为上下轨 //3然后就是三个判断条件,一个当天最高价大于上轨,不是多仓,时间小于10.5 nn:=barslast(date<>ref(date,1))+1; aa:ref(hhv(h,nn),1); if holding<=0 then buy(1,1,market); if time<100500 then buy(1,1,market);
同为实习生,必须得支持一下 您好,//1,原程序的意思是先求出过去30个周期里,每个周期最高价减去最低价,求的30个差价后,然后相加,除30,求平均
[此贴子已经被作者于2012-3-15 12:41:23编辑过]
|