以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  请教 ,帮看看  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=162536)

--  作者:beely
--  发布时间:2018/4/4 12:17:46
--  请教 ,帮看看
dc1:=5*mindiff;
dc2:=10*mindiff;

variable:a=0;
variable:b=0;

kd:=open+dc1 and holding=0;
kk:=open-dc1 and holding=0;

开空:buyshort(kk,1,market);
开多:buy(kd,1,market);

repeat
begin
if a<c then a=c;
if a>c+dc2 and holding>0 then
begin
sell(holding>0,holding,market);
buyshort(holding=0,1,market);
end
if b>c then b=c;
if b<c+dc2 and holding<0 then
begin
sellshort(holding<0,holding,market);
buy(holding=0,1,market);
end
if time>=185900 then
begin
sell(holding>0,holding,market);
sellshort(holding<0,holding,market);
end
end
until time>185930


用了循环     一加载到图标上就卡住了  ,是陷入死循环了吗

--  作者:wenarm
--  发布时间:2018/4/4 12:28:34
--  

你使用循环是为了实现什么操作思路。

你代码中的处理方式压根就不适合PEL策略处理的机制。本身策略就是按时间方向,不多循环运行的

[此贴子已经被作者于2018/4/4 12:30:42编辑过]

--  作者:beely
--  发布时间:2018/4/4 12:49:32
--  
以下是引用wenarm在2018/4/4 12:28:34的发言:

你使用循环是为了实现什么操作思路。

你代码中的处理方式压根就不适合PEL策略处理的机制。本身策略就是按时间方向,不多循环运行的

[此贴子已经被作者于2018/4/4 12:30:42编辑过]

我是想实现在一个判断周期内变量不被重置
--  作者:wenarm
--  发布时间:2018/4/4 13:15:20
--  

k线计算过程中,每根k上的值,如果k起始位置未发生变化的情况下,其变量的在每根k值,一般不会发生变化。

 

而且是上面的处理方式也控制不了。首先CLOSE,本身就是序列变量,它在时间方向上。(历史部分)其值就不会变。

 

或者你说明下,你遇到的具体是什么问题,才考虑用上面的方式进行处理的?

 


--  作者:beely
--  发布时间:2018/4/4 13:35:24
--  
以下是引用wenarm在2018/4/4 13:15:20的发言:

k线计算过程中,每根k上的值,如果k起始位置未发生变化的情况下,其变量的在每根k值,一般不会发生变化。

 

而且是上面的处理方式也控制不了。首先CLOSE,本身就是序列变量,它在时间方向上。(历史部分)其值就不会变。

 

或者你说明下,你遇到的具体是什么问题,才考虑用上面的方式进行处理的?

 

谢谢你,我的策略是在开盘后确定开仓方向,然后以实时价回调或者反弹10个点做反手交易的日内交易,我也不知道我现在这种编程思路对不对,还希望指教下,
--  作者:wenarm
--  发布时间:2018/4/4 14:08:30
--  
以下是引用beely在2018/4/4 13:35:24的发言:

谢谢你,我的策略是在开盘后确定开仓方向,然后以实时价回调或者反弹10个点做反手交易的日内交易,我也不知道我现在这种编程思路对不对,还希望指教下,

你这个需求,直接就能,根据holding的状态判断当前图表的仓位方向。

不过你需要先了解pel的语法特点以及其图表后台的机制问题。

 

holding>0代表多头持仓,

holding<0代表多空持仓,

holding=0代表持仓为0,

 

例如:价格上涨10个点位,后进行平多开空.(已经存在持仓情况)

if   holding>0 and ENTERPRICE<close+10*mindiff then begin
 sell();
 BUYSHORT();

end

 


--  作者:beely
--  发布时间:2018/4/4 14:20:53
--  
以下是引用wenarm在2018/4/4 14:08:30的发言:

你这个需求,直接就能,根据holding的状态判断当前图表的仓位方向。

不过你需要先了解pel的语法特点以及其图表后台的机制问题。

 

holding>0代表多头持仓,

holding<0代表多空持仓,

holding=0代表持仓为0,

 

例如:价格上涨10个点位,后进行平多开空.(已经存在持仓情况)

if   holding>0 and ENTERPRICE<close+10*mindiff then begin
 sell();
 BUYSHORT();

end

 

谢谢你,我的思路不是上涨10个点反手交易,是开仓后开始计算历史最高价回调十个点就反手交易多转空(历史最低价反弹10个点反手空转多),请问这怎么实现?
--  作者:wenarm
--  发布时间:2018/4/4 14:29:51
--  

一样的。开仓以来以来的最高价

HH:hhv(high,ENTERBARS);

直接拿这个和当前行情比较就行了。


--  作者:wenarm
--  发布时间:2018/4/4 14:35:33
--  

buy(BARPOS=1,1,MARKETr);

 

if   holding>0 and hhv(high,ENTERBARS)<close+10*mindiff  and  ENTERBARS>0  then begin
 sell();
 BUYSHORT();

end

 

hhv(high,ENTERBARS)可以得到开仓以来的最高价,当然你也可以通过全局变量进行标记。

 

[此贴子已经被作者于2018/4/4 14:36:41编辑过]

--  作者:beely
--  发布时间:2018/4/4 16:21:59
--  
以下是引用wenarm在2018/4/4 14:35:33的发言:

buy(BARPOS=1,1,MARKETr);

 

if   holding>0 and hhv(high,ENTERBARS)<close+10*mindiff  and  ENTERBARS>0  then begin
 sell();
 BUYSHORT();

end

 

hhv(high,ENTERBARS)可以得到开仓以来的最高价,当然你也可以通过全局变量进行标记。

 

[此贴子已经被作者于2018/4/4 14:36:41编辑过]

灰常感谢,我之前就是想用全局变量,但是没处理好。
[此贴子已经被作者于2018/4/4 16:23:23编辑过]