欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 建议开发c#作为自动交易语言

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有14439人关注过本帖树形打印复制链接

主题:建议开发c#作为自动交易语言

帅哥哟,离线,有人找我吗?
guotie
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:46 积分:357 威望:0 精华:0 注册:2010/5/5 11:02:47
建议开发c#作为自动交易语言  发帖心情 Post By:2010/5/7 13:31:18 [只看该作者]

国外先进的自动交易软件,openquant,quantdeveloper都是把c#作为交易语言,并且,技术指标全部用c#编写。

 回到顶部
帅哥哟,离线,有人找我吗?
admin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2010/5/7 14:34:01 [只看该作者]

那样的话,用户直接就用VS2008的C#编写交易策略就行了,还用金字塔何干。

此外,金字塔也提供了基于C++的接口规范,你同样可以使用这些高级语言编写策略然后通过金字塔下单。


 回到顶部
帅哥哟,离线,有人找我吗?
guotie
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:46 积分:357 威望:0 精华:0 注册:2010/5/5 11:02:47
  发帖心情 Post By:2010/5/7 14:38:06 [只看该作者]

要用到金字塔的交易测试,执行体系; mt还是用c、c++写的指标、交易体系呢

 回到顶部
帅哥哟,离线,有人找我吗?
cyberfox2002
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:14 积分:152 威望:0 精华:0 注册:2010/2/3 15:12:53
  发帖心情 Post By:2010/5/15 20:21:52 [只看该作者]

主流开发语言写策略,没有编程基础的人很难接受自动化交易,如果用简单的语言,那客户群体就大多了。

 回到顶部
帅哥哟,离线,有人找我吗?
Likai
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 李凯学堂
等级:论坛游侠 帖子:137 积分:854 威望:0 精华:0 注册:2009/8/24 14:44:18
  发帖心情 Post By:2010/5/17 16:41:28 [只看该作者]

可以通过C++插件接口,采用IPC技术,把接口封装成可以被C#调用的DLL。


 回到顶部
帅哥哟,离线,有人找我吗?
winewine99
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:47 积分:422 威望:0 精华:1 注册:2010/3/19 15:47:54
以下列OpenQuant代码为例,给讲讲封装过程,并在金字塔中调用怎么做  发帖心情 Post By:2010/6/19 19:44:45 [只看该作者]

using OpenQuant.API; using OpenQuant.API.Indicators; using System.Drawing; public class MyStrategy : Strategy { // quantity to buy on a trade [Parameter("Order quantity (number of contracts to trade)")] double Qty = 100; [Parameter("Bar Block Size")] int BarBlockSize = 6; [Parameter("Length of SMA in blocks (weeks)", "SMA")] int FastSMALength = 22; [Parameter("Length of SMA in blocks (weeks)", "SMA")] int SlowSMALength = 55; int positionInBlock = 0; bool buyOnNewBlock; bool sellOnNewBlock; // two moving averages SMA fastSMA; SMA slowSMA; public override void OnStrategyStart() { // set up the fast average fastSMA = new SMA(Bars, FastSMALength * 7, Color.Yellow); Draw(fastSMA, 0); // set up the slow average slowSMA = new SMA(Bars, SlowSMALength * 7, Color.Pink); Draw(slowSMA, 0); } public override void OnBarOpen(Bar bar) { // calc quantity to reverse a position double orderQty = 2 * Qty; if (!HasPosition) orderQty = Qty; if (positionInBlock == 0) { if (buyOnNewBlock) { Buy(orderQty, "Reverse to Long"); buyOnNewBlock = false; } if (sellOnNewBlock) { Sell(orderQty, "Reverse to Short"); sellOnNewBlock = false; } } } public override void OnBar(Bar bar) { // if our SMAs contain the current bar date if (fastSMA.Contains(bar.DateTime) && slowSMA.Contains(bar.DateTime)) { // see which one is above the other Cross cross = fastSMA.Crosses(slowSMA, bar); if (cross == Cross.Above) buyOnNewBlock = true; if (cross == Cross.Below) sellOnNewBlock = true; } positionInBlock = (positionInBlock++) % BarBlockSize; } }

 回到顶部
帅哥哟,离线,有人找我吗?
winewine99
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:47 积分:422 威望:0 精华:1 注册:2010/3/19 15:47:54
[求助]跨窗格输出字符串,无效?  发帖心情 Post By:2010/6/19 19:50:15 [只看该作者]

using OpenQuant.API;
using OpenQuant.API.Indicators;

using System.Drawing;

public class MyStrategy : Strategy
{
// quantity to buy on a trade
[Parameter("Order quantity (number of contracts to trade)")]
double Qty = 100;

[Parameter("Bar Block Size")]
int BarBlockSize = 6;

[Parameter("Length of SMA in blocks (weeks)", "SMA")]
int FastSMALength = 22;

[Parameter("Length of SMA in blocks (weeks)", "SMA")]
int SlowSMALength = 55;

int positionInBlock = 0;
bool buyOnNewBlock;
bool sellOnNewBlock;

// two moving averages
SMA fastSMA;
SMA slowSMA;

public override void OnStrategyStart()
{
// set up the fast average
fastSMA = new SMA(Bars, FastSMALength * 7, Color.Yellow);
Draw(fastSMA, 0);
// set up the slow average
slowSMA = new SMA(Bars, SlowSMALength * 7, Color.Pink);
Draw(slowSMA, 0);
}

public override void OnBarOpen(Bar bar)
{
// calc quantity to reverse a position
double orderQty = 2 * Qty;

if (!HasPosition)
orderQty = Qty;

if (positionInBlock == 0)
{
if (buyOnNewBlock)
{
Buy(orderQty, "Reverse to Long");

buyOnNewBlock = false;
}

if (sellOnNewBlock)
{
Sell(orderQty, "Reverse to Short");

sellOnNewBlock = false;
}
}
}

public override void OnBar(Bar bar)
{
// if our SMAs contain the current bar date
if (fastSMA.Contains(bar.DateTime) && slowSMA.Contains(bar.DateTime))
{
// see which one is above the other
Cross cross = fastSMA.Crosses(slowSMA, bar);

if (cross == Cross.Above)
buyOnNewBlock = true;

if (cross == Cross.Below)
sellOnNewBlock = true;
}

positionInBlock = (positionInBlock++) % BarBlockSize;
}
}

 回到顶部
帅哥哟,离线,有人找我吗?
winewine99
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:47 积分:422 威望:0 精华:1 注册:2010/3/19 15:47:54
或者如何做成控件并供vba调用?  发帖心情 Post By:2010/6/19 19:59:08 [只看该作者]

或者如何做成控件并供vba调用?

 回到顶部
帅哥哟,离线,有人找我吗?
admin
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2010/6/19 20:24:21 [只看该作者]

C#编写ACTIVEX控件的知识,网上多得是,建议你到书店买书回去正规学习。

 回到顶部
帅哥哟,离线,有人找我吗?
lxy-fxj
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:8 积分:121 威望:0 精华:0 注册:2010/6/24 23:28:00
  发帖心情 Post By:2010/6/27 12:39:54 [只看该作者]

相对于VB,对于大众化不讲,个人觉得lua脚本简单一些,金字塔有没有考虑过调用lua脚本公式

 回到顶部
总数 13 1 2 下一页