以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=160347)

--  作者:步步高6668
--  发布时间:2017/12/12 11:13:57
--  请帮忙
请根据以下的条件写套完整的图表程序化交易系统,谢谢!



当KD=10时并且前面没有任何交易信号时,开多1手,
当KD=10时并且持有空单,平掉持有的空单,
当KD=10时但最近的平仓信号是多单止损单,不开多,否则开多1手.


当KK=10时并且前面没有任何交易信号时,开空1手,
当KK=10时并且持有多单,平掉持有的多单,
当KK=10时但最近的平仓信号是空单止损单,不开空,否则开空1手.


当持有的总多单浮亏超过10000元时,平持有的多单,
当持有的总多空浮亏超过10000元时,平持有的空单,

--  作者:yukizzc
--  发布时间:2017/12/12 13:12:15
--  
什么叫没有任何交易信号,图表是从第一根k开始的。历史有过信号,那么就都是算作有交易信号》》??
--  作者:步步高6668
--  发布时间:2017/12/12 13:23:29
--  
假设我设的窗格属性的日期是今天的,刚开盘时肯定是前面没有任何交易信号的
--  作者:步步高6668
--  发布时间:2017/12/12 13:32:00
--  
哦,好像是重复了,就按下面的写吧,谢谢!

当KD=10时并且持有空单,平掉持有的空单,
当KD=10时但最近的平仓信号是多单止损单,不开多,否则开多1手.


当KK=10时并且持有多单,平掉持有的多单,
当KK=10时但最近的平仓信号是空单止损单,不开空,否则开空1手.


当持有的全部多单浮亏超过10000元时,平持有的多单,
当持有的全部空单浮亏超过10000元时,平持有的空单,


--  作者:yukizzc
--  发布时间:2017/12/12 13:44:21
--  
if kd=10 and holding<0 then sell(1,holding,marketr);
 
if TYPE<>2 and NUMPROFIT(1)>0 then buy(1,1,marketr);
 
开多如上,空单自己参考函数改下即可
 

--  作者:步步高6668
--  发布时间:2017/12/12 14:17:23
--  
您好,我这里指的止损单是指后面写的两句话所发生的止损单,其他的不包括,刚才忘记注明,请再帮忙看看重新写个完整的,也包括后面的止损单,你写的我实在看不明白,再次多谢
--  作者:yukizzc
--  发布时间:2017/12/12 14:31:28
--  

variable:num_d=0;

if kd=10 and holding<0 then sell(1,holding,marketr);

 

if openprofit<-10000 then

begin

sell(1,holding,marketr);

num_d:=1;

end

 

if num_d=1 and KD=10 then

begin

buy(1,1,marketr);

num_d:=0;

end

 

用全局变量记录这个状态


--  作者:步步高6668
--  发布时间:2017/12/21 15:32:22
--  
您好,上面这个问题我弄了近10来天,还没好,麻烦您再仔细写套完整的,包括开多,开空,平多,平空,及多单止损,空单止损.
        重新按照下面的条件写,谢谢!


当KD=10并且持有空单,平掉持有的空单,
当KD=10时开多1手.但最近的平仓信号是多单止损单,不开多(这里的多单止损单是指下面的条件亏损超过10000元的单)

当KK=10 或者KKKK=10 时 并且持有多单,平掉持有的多单,
当KK=10 或者KKKK=10 时 时开空1手.但最近的平仓信号是空单止损单,不开空(这里的单止损单是指下面的条件亏损超过10000元的单)


当持有的全部多单浮亏超过10000元时,平持有的多单,
当持有的全部空单浮亏超过10000元时,平持有的空单,

(连续多单信号及空单信号的多少个数是不确定的,可能岀现一个多单信号后会出一个空单信号,也有可能出个多单信号后出一个空单信号,不一定的)谢谢!

--  作者:步步高6668
--  发布时间:2017/12/22 10:12:02
--  
您好,请帮我解决上面的问题,多谢!
--  作者:wenarm
--  发布时间:2017/12/22 12:35:06
--  

variable:num_d=0,num_k=0;

if kd=10 and holding<0 then sellSHORT(1,holding,marketr);
if (kk=10 or kkkk=10) and holding>0 then sell(1,holding,marketr);

if openprofit<-10000 and holding>0 then
begin
sell(1,holding,marketr);
num_d:=1;
end
if openprofit<-10000 and holding<0 then
begin
sellshort(1,holding,marketr);
num_k:=1;
end

if num_d=1 and KK=10 then
begin
 buy(1,1,marketr);
 num_d:=0;
end

if num_k=1 and (kk=10 or kkkk=10) then
begin
 buyshort(1,1,marketr);
 num_k:=0;
end