Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共13 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:基于开盘价的日内ATR区间突破的公式,求助

1楼
leoyangliu 发表于:2012/3/15 9:40:09
 基于开盘价的日内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编辑过]
2楼
just 发表于:2012/3/15 9:43:05
你干脆直接把你要实现的想法写出来,看看我们能不能帮你实现。
3楼
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编辑过]
4楼
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编辑过]

图片点击可在新窗口打开查看朋友你真老实,啥都说出来了

5楼
rushtaotao 发表于:2012/3/15 10:29:45

看了你们老大的要求,我真的感动流涕,我有一个好老大啊!!!图片点击可在新窗口打开查看

6楼
just 发表于:2012/3/15 10:31:48

//1、先求过去30个周期的最高点与最低点的差价的平均值 
//2,求得过去10天的平均开盘价,作为中间线,在加减1求的值,作为上下轨 
//3然后就是三个判断条件,一个当天最高价大于上轨,不是多仓,时间小于10.5,
//就对应一个操作。。。 

hh:=ref(hhv(h,30),1);
ll:=ref(llv(l,30),1);
pjgd:=(hh-ll)/30;
pjo:=stkindi('','aa.jj',0,6,-1);
上轨:pjo+1;
下轨:pjo-1;

if h>hh then hh:=h;
if hh>=上轨 and holding<=0 and time<=100500 then buy(1,1,market);
仅供参考

7楼
Leon 发表于:2012/3/15 11:02:04

你才去4天,能看懂这个已经算厉害了,这个涉及到转换问题,帮你研究研究。楼主别着急,慢慢来。

8楼
leoyangliu 发表于:2012/3/15 11:31:26
 谢谢
9楼
rushtaotao 发表于:2012/3/15 12:40:31

//1、先求过去30个周期的最高点与最低点的差价的平均值 
zg:=ref(LLV(low,30),1);
zd:=ref(hhv(high,30),1);
chajia:(zg-zd)/30,;

//2,以if01为例子,求得过去10天的平均开盘价,作为中间线,在加减1求的值,作为上下轨
dayopen:"if01$open#day";
kaipan:ma(dayopen,10);
shanggui:kaipan+1;
xiagui:kaipan-1;

//3然后就是三个判断条件,一个当天最高价大于上轨,不是多仓,时间小于10.5

nn:=barslast(date<>ref(date,1))+1;

aa:ref(hhv(h,nn),1);
if aa>shanggui then buy(1,1,market);

if holding<=0 then buy(1,1,market);

if time<100500

 then buy(1,1,market);

 

 同为实习生,必须得支持一下


 

[此贴子已经被作者于2012-3-15 12:41:23编辑过]
10楼
leoyangliu 发表于:2012/3/15 13:34:15
以下是引用rushtaotao在2012-3-15 12:40:31的发言:

//1、先求过去30个周期的最高点与最低点的差价的平均值 
zg:=ref(LLV(low,30),1);
zd:=ref(hhv(high,30),1);
chajia:(zg-zd)/30,;

//2,以if01为例子,求得过去10天的平均开盘价,作为中间线,在加减1求的值,作为上下轨
dayopen:"if01$open#day";
kaipan:ma(dayopen,10);
shanggui:kaipan+1;
xiagui:kaipan-1;

//3然后就是三个判断条件,一个当天最高价大于上轨,不是多仓,时间小于10.5

nn:=barslast(date<>ref(date,1))+1;

aa:ref(hhv(h,nn),1);
if aa>shanggui then buy(1,1,market);

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编辑过]
共13 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in 0.01563 s, 3 queries.