使用IronPython实现策略中心思路

简介:

对于不了解IronPhython的同学可以参考IronPython 与C#交互

一、基础知识

我们先从一个简单场景开始

不同公司的年假会有不同的策略,国家的规定好像是工作一年以上年假为5天,而有些公司还有些扩展的年假,比如每在公司多待一年年假增加1天,经理级别第一年就有年假等。如果我们使用简单的配置方式可能无法满足更复杂的策略,如果使用C#的动态编译(.net项目的二次开发解决方案)又有点复杂而且交互时还可能因为不同程序域带来很多问题。现在有了IronPhython实现起来就比较简单了。

我们先看代码:

 

代码

 

代码

 

代码

 

结果为6

这里我们可以将ironPythonExpression中的内容存在数据库中,根据我们的策略进行修改,因为这里是ironPython的源代码,所以你扩展策略逻辑的自由度会非常大

二、策略中心设计示意

SQLServer2008中有策略管理(可以参考SQL Server 2008新特性——策略管理 ),我们这里要做的策略中心跟这个有些相似,首先我们先介绍一下我们要用到的三个术语

1、方面:方面就是策略要应用的对象,比如员工年假,员工号

2、条件:条件就是一个布尔表达式判断策略是否为真

3、策略:策略就是在条件为假的情况下要执行的操作

我们先来看代码:

代码

 

代码

 

代码

 

代码

结果为

6

lfm1

 这里只是实现策略中心的部分核心代码,如果真的实现这个策略中心的话还有很多辅助工作要做,这里边IronPhython代码可能需要我们提供界面生成出来,那么我们就需要在使用的地方为策略服务提供输入和返回的数据类型,策略服务可以根据输入类型来反射得到所有的字段,这些字段可以用于生成条件,然后这些条件可以用来生成IronPhython代码,也可以把这些字段应用到IronPhython代码编写相应的策略上。

源码下载(需要自己引用IronPython

本文转自 你听海是不是在笑 博客园博客,原文链接: http://www.cnblogs.com/nuaalfm/archive/2010/05/26/1744318.html  ,如需转载请自行联系原作者

相关文章
|
Serverless Python
Python实现布林线策略
使用Python实现布林线策略案例的简单示例
252 2
|
4月前
|
机器学习/深度学习 数据挖掘 测试技术
自学Python的系统策略与步骤
通过遵循这些步骤和策略,你可以系统地自学Python,并有效地构建和深化你的编程知识和技能。
40 6
|
3月前
|
移动开发 算法 前端开发
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
前端常用算法全解:特征梳理、复杂度比较、分类解读与示例展示
41 0
|
5月前
|
数据挖掘 Python
【Python数据分析】假设检验的基本思想、原理和步骤
文章详细介绍了假设检验的基本思想、原理、可能犯的错误类型、基本步骤以及在不同总体情况下的检验方法,阐述了如何在Python中应用假设检验,并通过P值来判断假设的可靠性。
90 1
|
8月前
|
机器学习/深度学习 算法
【算法 | 实验7】以最小的步骤收集所有硬币(算法正确性还没想清楚)
题目 最小步骤收集硬币 有许多相邻排列的硬币堆。我们需要以最少的步骤收集所有这些硬币,在一个步骤中,我们可以收集一个水平线的硬币或垂直线的硬币,收集的硬币应该是连续的。 输入描述 输入第一行整数N表示硬币堆的数量
100 0
|
8月前
|
Serverless Python
python实现布林线策略案例
此Python代码示例展示了如何运用布林线策略进行股票交易模拟。首先,它下载AAPL股票的历史数据,计算每日收益率,并计算布林线(中位数、上轨和下轨)。接着,定义了一个交易策略,当股价超过布林线上轨时买入,低于下轨时卖出。通过循环模拟交易日并更新资产,最后计算总收益。请注意,实际交易应考虑更多因素如交易费用和风险管理。
68 1
|
8月前
|
存储 算法
智能算法 | 刷题的方法真的找到正确思路了嘛
智能算法 | 刷题的方法真的找到正确思路了嘛
|
8月前
|
机器学习/深度学习 算法 Python
蒙特卡洛法的简介以及实战应用(python实现 基于同策略首次访问蒙特卡洛算法 附源码)
蒙特卡洛法的简介以及实战应用(python实现 基于同策略首次访问蒙特卡洛算法 附源码)
152 0
|
机器学习/深度学习 算法 计算机视觉
舌体胖瘦的自动分析-曲线拟合-或许是最简单判断舌形的方案(六)
舌体胖瘦的自动分析-曲线拟合-或许是最简单判断舌形的方案(六)
182 0
|
机器人 API 区块链
Pionex派网量化网格交易机器人开发策略部署[源码执行规则示例]
Pionex派网量化网格交易机器人开发策略部署[源码执行规则示例]