以文本方式查看主题

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

--  作者:诗与远方
--  发布时间:2021/1/4 10:58:46
--  请教老师:样编怎写。
请教老师:样编写。
 1.多单,价格突破前一根K线高点买入,(不停突破,会不停的加仓)。跌破前一根K线底点止损(所有多单)   
 2.空单,价格跌破前一根K线底点买出,(不停跌破,会不停的加仓)。突破前一根K线底点止损(所有空单)
 3.周期为1分钟,收盘前强平所有单。(下午3点前强平,晚上11点前强平。)

--  作者:FireScript
--  发布时间:2021/1/4 11:13:51
--  
 收盘强平这个 你现在是走完K模式还固定轮询模式?

--  作者:诗与远方
--  发布时间:2021/1/4 11:36:56
--  
走完K模式
--  作者:诗与远方
--  发布时间:2021/1/4 12:25:56
--  
交易下单时,不用走完一根K线,只要有一单突破就下单。
--  作者:FireScript
--  发布时间:2021/1/4 13:15:21
--  
1. 你走完K  就只能等K线走完才能发单。这个模式就是这样的,无法从代码上突破这个限制的。
2.
如果是走完K模式的话,那就只能在收盘前一个K上出信号,然后收盘K上刚好按照信号下单。

if h>ref(h,1) then buy(1,1,market);//当前最高价大于上个K最高价


if l<ref(l,1) then //当前最低价低于上个K最低价
begin
sell(1,holding,market);
buyshort(holding=0,1,market);
end

if l>ref(l,1) then sellshort(1,holding,market);//当前最低价大于上个K最低价

if time=185900 or time=045900 then //走完K模式下收盘前一个K出信号,否则就只能在下次开盘K上开仓了。
begin
收盘强平1:sell(1,holding,market);   
收盘强平2:sellshort(1,holding,market);
end



--  作者:诗与远方
--  发布时间:2021/1/4 13:46:58
--  
你好,改用固定轮询模式呢?
--  作者:诗与远方
--  发布时间:2021/1/4 13:48:11
--  
交易下单时,不用走完一根K线,只要有一单突破就下单。

--  作者:FireScript
--  发布时间:2021/1/4 14:03:37
--  
 如果改成固定轮询模式 就是可以实现满足条件就下单。
相应的,这里时间判断改成判断收盘K就行了。因为信号会在最后一个K上直接触发 并下单。

if time=190000 or time=050000 then //走完K模式下收盘前一个K出信号,否则就只能在下次开盘K上开仓了。
begin
收盘强平1:sell(1,holding,market);   
收盘强平2:sellshort(1,holding,market);
end

--  作者:诗与远方
--  发布时间:2021/1/4 14:30:37
--  

 不好意思,这里写错了,请修改一下!

2.空单,价格跌破前一根K线底点买出,(不停跌破,会不停的加仓)。突破前一根K线高点止损(所有空单)


--  作者:FireScript
--  发布时间:2021/1/4 14:36:19
--  
 那这样子:
if h>ref(h,1) then sellshort(1,holding,market);//当前k最高价格大于上个K最高价
if h>ref(h,1) then buy(1,1,market);


if l<ref(l,1) then //当前最低价低于上个K最低价
begin
sell(1,holding,market);
buyshort(holding=0,1,market);
end

这里还是说明下。这里上下突破我选择用的是当前K的最高 最低价来处理的。和直接用收盘价是有点区别的。但是你这里用的是固定轮询 用最高最低价会更合理些。