Rss & SiteMap

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

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

标题:编写求助

1楼
Damoclus 发表于:2019/9/8 19:24:05

比如:收盘前10分钟,如果行情方向与持仓方向相反则平仓。如果收盘前10分钟,行情方向与持仓方向相同,则持仓到收盘前2分钟平仓。

2楼
FireScript 发表于:2019/9/9 9:11:51
 1.“行情方向与持仓方向相反” 这个需要具体的定义才能写成代码形式。
2.图表还是后台呢?
3楼
Damoclus 发表于:2019/9/9 19:06:47
有事没及时回复。
1.“行情方向与持仓方向相反”:
比如持有多单,离收市还有10min,此时k线为阴线,则平仓。如果此时k线为阳线,则持仓到离收市2min平仓。10min图表交易
2.图表交易
4楼
FireScript 发表于:2019/9/10 9:06:09
 这个K线的阴阳线 可能是实时变化的,你这里的判断只是取某一刻的吗?哪怕下一秒反转的也无所谓? 比如10min是阳线到了2分钟时候反倒变成阴线了。 另外交易周期是10分钟K周期?
5楼
Damoclus 发表于:2019/9/10 10:00:30
目前判断先取某一刻。先以那个时间点取值判断。
交易周期10分钟k线周期。
6楼
FireScript 发表于:2019/9/10 10:18:13
 我尝试了下。这个图表上做不到,后台或许可以,但是图表不行。图表上无法在一个K内记住某个变化的状态,也就是无法记住是否某个时刻满足阳线条件,只能判断最新状态是否是阳线。而你这个思路是需要做这个判断的,因此这个不行。
7楼
Damoclus 发表于:2019/9/10 21:03:11
麻烦举个例子,后台怎么编写。如果是只判断最新状态
8楼
FireScript 发表于:2019/9/11 9:20:55
abb3:time0-timetot0(CLOSETIME(0));//收盘K线结束倒计时间

// barpos>extgbdata('t')  这个是关键用来限制下面这个if里面的语句在每个K内 只在满足条件时候执行一次
if barpos>extgbdata('t') and abb3>=10*60 then //收盘前10分钟判断一次 由于行情活跃程度不同,abb3可能无法刚好计时到10分钟位置,所以必须是用>=判断
begin
if c>o and TSELLHOLDINGEX('','',1)>0 then TSELLSHORT(1,TSELLHOLDINGEX('','',1),MKT);
if c<o and TBUYHOLDINGEX('','',1)>0 THEN tsell(1,TBUYHOLDINGEX('','',1),MKT);
extgbdataset('t',barpos);//
end



if abb3>=2*60 then //收盘前2分钟直接全平仓
begin
TSELLSHORT(1,TSELLHOLDINGEX('','',1),MKT);
tsell(1,TBUYHOLDINGEX('','',1),MKT);    
end

需要设置一个全局变量:
工具-选项-数据管理-全局变量

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看


仅供参考

上面后台代码平仓会对所有来源的持仓都平仓的,我没有做精细的控制了。可以自行修改平仓手数之类的。
9楼
Damoclus 发表于:2019/9/12 18:09:59
以下是引用FireScript在2019/9/11 9:20:55的发言:
abb3:time0-timetot0(CLOSETIME(0));//收盘K线结束倒计时间

// barpos>extgbdata('t')  这个是关键用来限制下面这个if里面的语句在每个K内 只在满足条件时候执行一次
if barpos>extgbdata('t') and abb3>=10*60 then //收盘前10分钟判断一次 由于行情活跃程度不同,abb3可能无法刚好计时到10分钟位置,所以必须是用>=判断
begin
if c>o and TSELLHOLDINGEX('','',1)>0 then TSELLSHORT(1,TSELLHOLDINGEX('','',1),MKT);
if c<o and TBUYHOLDINGEX('','',1)>0 THEN tsell(1,TBUYHOLDINGEX('','',1),MKT);
extgbdataset('t',barpos);//
end



if abb3>=2*60 then //收盘前2分钟直接全平仓
begin
TSELLSHORT(1,TSELLHOLDINGEX('','',1),MKT);
tsell(1,TBUYHOLDINGEX('','',1),MKT);    
end

需要设置一个全局变量:
工具-选项-数据管理-全局变量

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看


仅供参考

上面后台代码平仓会对所有来源的持仓都平仓的,我没有做精细的控制了。可以自行修改平仓手数之类的。




基础比较薄弱,
t的意义是???或者说t的作用是什么??

10楼
FireScript 发表于:2019/9/16 8:53:56
 t的作用就是限制部分代码在每个K里只在满足某个条件时候只触发一次的作用。

if barpos>extgbdata('t')  then
begin
extgbdataset('t',barpos);//记住K线位置。
//需要在满足条件时候只操作一次的代码
end

t在符合条件的时候会记住barpos 也就是K线位置, 这样下次再次执行代码时候 barpos>extgbdata('t') 就无法满足了,这样就可以达到限制后面的重复执行。因为这时候 赋值之后barpos是等于extgbdata('t')的值的。无法满足barpos>extgbdata('t')这个条件的。


共11 条记录, 每页显示 10 条, 页签: [1] [2]


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