以文本方式查看主题

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

--  作者:zengxing
--  发布时间:2017/11/1 17:59:41
--  加仓模型问题
比如当价格高于ma20后,开多,开仓价为X,然后价格每次上涨x的3%,加仓开多一手。如果下跌x的3%,平多一手。
价格如果跌过ma20 全平 
这个应该怎么写?

--  作者:zengxing
--  发布时间:2017/11/1 18:02:40
--  
修改一下
X是变化的,为上一次的开仓价,不是第一次的。
因为是K线走完交易,所以应该是开仓或者加仓K线的收盘价

--  作者:zengxing
--  发布时间:2017/11/2 13:44:19
--  
可以嘛?
--  作者:FireScript
--  发布时间:2017/11/2 14:28:31
--  

if close>ma(close,20)  then buy(1,1,MARKET);


if holding>0 and (ENTERPRICE-close)/ENTERPRICE>=0.03 then sell(1,1,MARKET);

if holding>0 and (close-ENTERPRICE)/ENTERPRICE>=0.03 then buy(1,1,MARKET);

if holding>0 and l<ma(close,20) then sell(1,holding,MARKET);


--  作者:zengxing
--  发布时间:2017/11/9 22:55:04
--  
仔细看了,开仓是没有问题的,ENTERPRICE会随着长

但平仓的时候,ENTERPRICE不跟着动,平仓的点位都是一样的,这样不对。

能不能平仓也是跟着走的。

--  作者:qq代人发帖
--  发布时间:2017/11/10 9:01:57
--  

enterprice只和开仓有关和平仓无关,只有开新仓enterprice才会变

第一次开仓后加仓1手只加1次,下次重新开仓后才能再加仓是吗?

还是说只要满足价格上涨3%就加仓?

 


--  作者:zengxing
--  发布时间:2017/11/10 10:33:40
--  
可以理解为,价格比,上一次平仓价格小3%就平仓,怎么写?

例如,
上一次平仓是100,
那么,下一次开仓是103 平仓是97 

上一次开仓是100,
那么,下一次开仓是103 平仓是97 


这个应该怎么写?
其实主要是以上一次交易的价格为基础,无论开平仓

--  作者:FireScript
--  发布时间:2017/11/10 11:06:25
--  


if holding>0 and (ENTERPRICE-close)/ENTERPRICE>=0.03 then sell(1,1,MARKET);

 

这里用到的ENTERPRICE替换成EXITPRICE。就是以上一次平仓价下跌3%的价格来作为条件。


--  作者:zengxing
--  发布时间:2017/11/10 22:56:42
--  
改了。。但还是不对。。貌似不能单纯的用 

ENTERPRIC   或者   EXITPRICE

因为其实是,最后一次交易的价格作为基准,无论开平仓。这个怎么写?

可以理解为,价格比,上一次平仓价格小3%就平仓,怎么写?

例如,
上一次平仓是100,
那么,下一次开仓是103 平仓是97 

上一次开仓是100,
那么,下一次开仓是103 平仓是97 


这个应该怎么写?
其实主要是以上一次交易的价格为基础,无论开平仓

--  作者:yukizzc
--  发布时间:2017/11/13 12:47:57
--  

variable:n=0;
if close>ma(close,20)  then
begin
buy(1,1,MARKET);
n:=close;
end


if holding>0 and (n-close)/n>=0.03 then
begin
sell(1,1,MARKET);
n:=close;
end

if holding>0 and (close-n)/n>=0.03 then
begin
 buy(1,1,MARKET);
 n:=close;
 end

if holding>0 and l<ma(close,20) then sell(1,holding,MARKET);