以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://www.weistock.com/bbs/list.asp?boardid=4)
----  [求助]历史价交易  (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=172815)

--  作者:tsh08381180
--  发布时间:2019/11/4 14:29:13
--  [求助]历史价交易
我有一个交易思路。是这样的,求老师帮忙编写

开空仓  
1,当价格大于历史最高价的1.10开空单1手
2,当价格大于历史最高价的1.15开空单2手;
3,当价格大于历史最高价的1.20开空单4手;
4,当价格大于历史最高价的1.25开空单8手;
按历史最高价的倍数每次0.05增加,开仓以上一次开仓手数的两倍增加
最大总持仓不超过200手

当价格盈利100个跳动单位时平仓!

--  作者:FireScript
--  发布时间:2019/11/4 14:58:57
--  
历史最高价,这个得限制在一个范围内吧。还是说就之前全部K线最高价?此外就是这个最高价是随时可能被刷新的,第一次的开空单条件是可能连续触发的,只要最高价刷新了的话。
--  作者:tsh08381180
--  发布时间:2019/11/4 15:06:14
--  
单个品种上市以来到今天的最高价,若是有了持仓,最高价就选择之前的最高价,不刷新!



--  作者:tsh08381180
--  发布时间:2019/11/4 15:38:08
--  
你好,或者说单个品种,上市以来的最高价,上市周期必须超过两年的,当价格高于最近两年的最高价开仓,当有持仓的时候,最高价不做刷新


--  作者:FireScript
--  发布时间:2019/11/4 16:24:08
--  
 VARIABLE:mark:=0,ct:=0;
hv:hhv(c,0);//表示当前所有K的最高价。如果需要上市以来的最高价,需要自行加载全部K线。无法直接获取这样的值。

vl:(c-ref(hv,1))/ref(hv,1);//当前c和之前(不包括当前K)的c最高价比较。

if vl>=0.01  and holding=0 then //首次开仓
begin
buyshort(holding=0,1,market);
mark:=hv;//首次开仓之后记录下所以的最高价hv
ct:=2;    //ct这个变量是根据价差幅度来计算开仓手数
end

temp:FLOOR(((c-mark)/mark)/0.005);//计算最高价和当前价格 价差的
kk:Intpart(asset/(Close*Multiplier*TACCOUNT(42)));//当前资金最大开仓手数


if holding<0  and temp>ct and abs(holding)<=200 then //加仓
begin
jc:buyshort(1,if(kk>=temp-1,temp-1,kk),market);
ct:=temp;    
end

if AvGENTERPRICE-c>=100*MINDIFF and holding<0 then //止盈平仓
begin
sellshort(holding<0,holding,market);    
end

hd:HOLDING;
zc:ASSET;

代码仅供参考。
[此贴子已经被作者于2019/11/4 17:03:14编辑过]

--  作者:tsh08381180
--  发布时间:2019/11/4 17:00:31
--  
为什么会屏蔽了呀?


--  作者:FireScript
--  发布时间:2019/11/4 17:18:01
--  
 已恢复了,部分函数带了可能敏感的词了。
[此贴子已经被作者于2019/11/4 17:18:15编辑过]