如何用C#实你量化交易策略模型

129 篇文章 5 订阅

原 如何使用C#实现你的量化交易策略模型

编者按语:本文通过基于掘金量化交易平台支持的C#,如何使用C#编程语言实现Quant er  的金融策略交易模型。

一、C#  SDK文档指引

1.快速新建策略

◆下载掘金3终端 点击下载

◆打开终端后,登陆掘金账号点击研究策略,新建策略

或者点击右上角新建策略

◆新建一个典型默认账户交易策略

新建C#的默认账户交易策略

2.编译策略

◆打开新建策略文件目录

策略文件目录内容可以拷贝到本地其他盘符也可以进行编译生成

◆打开工程文件 sln 文件

需要用 visual studio 打开工程文件 (注意:visual studio 2013及以下版本需安装.net framework 4.5.2)

3.编写策略

打开Program.cs文件,可进行策略编辑

编译并运行策略

◆查看运行结果

掘金客户端中关闭新建策略窗口并打开回测结果列表

查看回测结果

回测相关数据指标

4.下载我们的SDK

◆下载sdk: 点击下载

解压后得到:

。example:示例代码

。gmsdk :C#SDK

5.建立我们第一个策略

◆打开Visual Studio新建空白工程并新建源码文件

◆工程中引用 gmsdk-net.dll

◆引入命名空间:GMSDK

◆将 gmsdk.dllprotobuf-net.dll放到策略执行文件所在目录

6.策略应该是这样的

◆继承策略基类

◆重改关注事件

◆在OnInit里订阅行情,初始化

◆在main方法中实例化一个派生类对像

◆设置token,策略id,和mode

◆开始运行

7.继承策略基类

8.重改关注事件

9.在OnInit里订阅行情,初始化

10.在main里实例化一个派生类对像

1)获取token:打开客户端->点击右上角用户头像 -> 系统设置 -> 复制token

2)获取策略id:打开客户端->策略研究->右上角新建策略->新建C#策略->复制策略ID

3)策略模式:

[1] MODE_LIVE

[2] MODE_BACKTEST

11.开始运行

12.订阅行情策略示例

源文件

由于篇幅有限,更多关于C#  SDK文档指引请点击以下内容列表查看:

二、典型场景                   五、数据函数查询                   八、枚举常量

三、重要概念                   六、结果集合类                       九、错误码

四、策略基类                   七、数据结构

----------------------------------------------------------------------------------------

相关推荐阅读:

01.如何使用Python实现你的量化交易策略

02.如何使用Matlab实现你的量化交易策略

03.如何使用C++实现你的量化交易策略


《算法导论 第三版英文版》_高清中文版

《深度学习入门:基于Python的理论与实现》_高清中文版

《深入浅出数据分析》_高清中文版

《Python编程:从入门到实践》_高清中文版

《Python科学计算》_高清中文版

《深度学习入门:基于Python的理论与实现》_高清中文版

《深入浅出数据分析》_高清中文版

《Python编程:从入门到实践》_高清中文版


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
C# 中的锁(lock)用于现线程同步,确保在多线程环境下对共享资源的访问是安全的。设计锁的使用策略可以帮助我们避免潜在的并发问题和死锁。 下面是一些常见的锁使用策略: 1. 锁定共享资源:当多个线程需要访问同一个共享资源时,使用 lock 关键字将代码块包裹起来,确保同一时间只有一个线程可以进入临界区,避免并发访问问题。 ```csharp lock (sharedResource) { // 访问共享资源的代码 } ``` 2. 最小化锁的范围:锁的范围越小,竞争的机会就越小,从而提高并发性能。只在必要的代码段中使用锁,并在尽可能早的时候释放锁。 ```csharp lock (sharedResource) { // 只在需要访问共享资源的代码段中使用锁 // 尽可能早地释放锁 } ``` 3. 避免锁嵌套:避免在一个锁内部再次尝试获取另一个锁,以防止死锁的发生。 4. 使用 Monitor 类:除了 lock 关键字外,C# 还提供了 Monitor 类来现线程同步。Monitor 类提供了更多的功能,比如可以超时等待锁的释放。 ```csharp Monitor.Enter(sharedResource); try { // 访问共享资源的代码 } finally { Monitor.Exit(sharedResource); } ``` 5. 使用互斥体:另一种现线程同步的方式是使用 Mutex(互斥体),与锁相比,互斥体可以跨进程使用。 ```csharp Mutex mutex = new Mutex(); mutex.WaitOne(); // 获取互斥体 try { // 访问共享资源的代码 } finally { mutex.ReleaseMutex(); // 释放互斥体 } ``` 这些是一些常见的锁使用策略,根据具体的场景和需求选择适合的策略可以提高多线程程序的性能和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

redelego@cloud

XXXXXXXXXXXXXXX

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值