Rss & SiteMap

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

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

标题:[求助]请老师帮编写个公式,限制开仓

1楼
fxttxs186 发表于:2020/10/21 13:01:07
价格上穿10日均线,且收阳,假设这根K线为A,当第二根K线空破这根K线的最高点时开多,并以这根K线最低点为止损,如果价格跌破A的低点则止损。当开仓后价格最高到达盈利30个点,则平仓,只要到达就平,实时
。另外加一条:夜晚交易时段最多只允许开仓2次,白天交易时段最多只允许开仓3次。

请问要怎么写,谢谢
2楼
FireScript 发表于:2020/10/21 13:49:41
 VARIABLE:ct1:=0,ct2:=0;//2个全局变量,记录开仓次数
if TODAYBAR=1 then //第一个K重置全局变量的值为0
begin
ct1:=0;
ct2:=0;
end

ma10:ma(c,10);
majc:cross(c,ma10);

jch:VALUEWHEN(majc,h);//取到金叉时候的最高价
jcl:VALUEWHEN(majc,l);

cd:=(time<130000 and  ct1<2) or  (time>=130000 and ct2<3);//白盘,夜盘交易次数限制
if cross(c,jch) and holding=0 and cd then
begin
buy(1,1,market);
if time<130000 then ct1:=ct1+1;//开仓一次 全局变量递增1
if time>=130000 then ct2:=ct2+1;
end

if cross(jcl,c) and holding>0 then //下穿平仓
begin
sell(1,holding,market);
end

if  c-AVGENTERPRICE>=30*MINDIFF and holding>0 then sell(1,holding,market);//止盈平仓

仅供参考,具体使用时候请参考范例修改下即可。

3楼
fxttxs186 发表于:2020/10/21 15:15:37
感觉老师的回答!
有三个问题:
1、if  c-AVGENTERPRICE>=30*MINDIFF and holding>0 then sell(1,holding,market);//止盈平仓
       这句止赢平仓,老师用的C,我要求的实时,只要价格到达30个点盈利就平仓,C是不是要等这根K线收盘符合条件才会平仓?
       假如此处用C是代表实时价格,也是实时平仓,那举个例子,假如我用5分钟图表交易,如果要求当根K线的收盘价盈利30个点才平仓又如何写呢?

       如何区分实时价格和K线收盘的价格?有什么专门的函数吗?
       比如你写的下穿10日均线平仓,无论你用几分钟图表交易,有可能当根K线的L下穿了10线,但当这根K线收盘时又收在10线之上,实时下穿与K线收盘价下穿分别如何表示呢?

2、关于限制开仓,如果不用全局变量可以实现吗?

3、我要求夜盘限制开仓2次,而白天盘3次,通常期货交易的夜盘时间为21:00~23:00,白天为09:00~15:00
     而老师用的time为130000,请问这是什么时间?中午1点?
4楼
FireScript 发表于:2020/10/21 15:21:37
 1. c在最新K上就是最新价。最新K上这个C是时刻刷新的。  出信号之后下单时机是和你选择的交易模式有关:走完K或者固定轮询模式 有关的。 并不是说这里用了C 就非要走完K才下单。实际交易时候 你这里是需要选择固定轮询模式来实现实时下单的需求的。

2.这个限制开仓,不用全局变量不好统计次数的啊。
3.金字塔的时区默认是+4小时的。 所以130000 是早上9点的意思。
共4 条记录, 每页显示 10 条, 页签: [1]


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