Rss & SiteMap

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

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

标题:[求助][原创][求助]金叉死叉

1楼
wei0619789 发表于:2018/8/30 10:18:54
请老师帮忙编写一个简单策略:
MA10金叉MA20开1手多单,不设止损,当死叉时平仓。多单盈利20个点时加仓1手同时设止损在第一单开单处。
MA10死叉MA20开1手空单,不设止损,当金叉时平仓。空单盈利20个点时加仓1手同时设止损在第一单开单处。
最大盈利10000元时平仓当前所有仓位。
2楼
FireScript 发表于:2018/8/30 10:52:14
1.后台还是图表程序化
2.“多单盈利20个点时加仓1手同时设止损在第一单开单处。” 红字部分是指止损价设置在开仓价位置?

3楼
wei0619789 发表于:2018/8/30 15:32:50
是的   第一单的时候不设止损,当开第二单的时候才设,设在第一单的开单位置。@FireScript
4楼
FireScript 发表于:2018/8/30 16:05:21
ma10:ma(c,10);
ma20:ma(c,20);

majc:cross(ma10,ma20);
masc:cross(ma20,ma10);


if majc then //金叉
begin
sellshort(holding<0,holding,market);//平空仓
buy(holding=0,1,market); //开多仓
end

if masc then //死叉
begin
sell(holding>0,holding,market);//平多仓
buyshort(holding=0,1,market); //开空仓
end

if holding>0  and c-ENTERPRICE>=20*MINDIFF then //加仓
begin
buy(holding<>2,1,market);
end

if holding<0  and ENTERPRICE-c>=20*MINDIFF then //加仓
begin
buyshort(holding<>-2,1,market);
end

p1:=ref(ENTERPRICE,ENTERBARS+2);//如果有2次开仓,这里获取第一次开仓价

if holding=2 and c<p1 then
begin 
sell(holding>0,holding,market);
end

if holding=-2 and c>p1 then
begin 
sellshort(holding<0,holding,market);
end


大致范例如上所示:
[此贴子已经被作者于2018/8/30 16:11:19编辑过]
5楼
wei0619789 发表于:2018/8/30 16:14:15
谢谢老师
6楼
wei0619789 发表于:2018/9/3 20:44:09
按照老师的代码在图标上显示不是按照20个点加仓的。是需要可以在同一根K线上加仓,不是等收盘之后看收盘价。劳烦老师了【抱拳】
7楼
FireScript 发表于:2018/9/4 8:49:24
 这个不行的,图表上做不到同一个K开仓 ,并在此基础上根据这个开仓的盈利情况进行加仓的。

每一个K线就四个价格:开高低收,你判断开仓条件用的价格和你判断加仓条件用的价格都是一样的价格,显然无法在同一个K上同时成立的。
8楼
wei0619789 发表于:2018/9/7 14:39:26
老师   请问怎么可以把金字塔的回测数据更长一些?
9楼
FireScript 发表于:2018/9/7 14:44:35
 回测的时候 是可用选择时间跨度的啊。

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

这个跨度长点就行了。

亦或者你是要在图表上加载更多K线数据?
10楼
wei0619789 发表于:2018/9/7 15:14:19
选择了  但是只有不到一整年的数据。我选择的跨度是六七年呢
共15 条记录, 每页显示 10 条, 页签: [1] [2]


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