python - 用于交易策略开发的脚本语言

标签 python ruby scripting dsl trading

我目前正在开发一种交易产品的组件,该组件将允许定量分析或策略开发人员编写他们自己的自定义策略。我显然不能让他们用本地编译语言(甚至是编译成字节码以在虚拟机上运行的语言)编写这些策略,因为他们的开发/测试周期必须在几分钟内。

到目前为止,我已经看过 lua、python、ruby 并且非常喜欢它们,但仍然发现它们对我的目标用户来说有点“低级”。我是否需要以某种方式编写自己的解析器 + 解释器来支持一种语言,该语言对循环、简单算术、逻辑表达式求值的支持最少,或者你们是否有其他建议?提前致谢。

最佳答案

Mark-Jason Dominus,Perl 的作者 Text::Template模块,有一些可能相关的见解:

When people make a template module like this one, they almost always start by inventing a special syntax for substitutions. For example, they build it so that a string like %%VAR%% is replaced with the value of $VAR. Then they realize the need extra formatting, so they put in some special syntax for formatting. Then they need a loop, so they invent a loop syntax. Pretty soon they have a new little template language.

This approach has two problems: First, their little language is crippled. If you need to do something the author hasn't thought of, you lose. Second: Who wants to learn another language?

如果您编写自己的微型语言,您最终可能会陷入同样的​​困境——为一个在设计上有缺陷的工具维护语法和解析器。

如果一种真正的编程语言看起来有点太低级,解决方案可能不是放弃该语言,而是为您的最终用户提供更高级别的实用功能,以便他们可以使用熟悉的概念操作而不会陷入困境深入底层语言的杂草中。

这允许新手用户在高水平上操作;但是,您和任何精通它的最终用户(您的 super 用户)仍然可以充分利用 Ruby 或 Python 或其他语言的全部功能。

关于python - 用于交易策略开发的脚本语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2297889/

相关文章:

ruby-on-rails - 为 Ruby 2.0 配置 Rails

shell - 转义字符串

windows - 如何在 Windows 的变量中获取命令的结果?

linux - 在输出文件上运行脚本

python - 从 DataFrame 创建排列而不重复

Python 检查多个列表的相似性

python - Python-用ASCII字符替换unicode表情符号

ruby-on-rails - 我使用 Nginx 在 Ubuntu 上运行的 VPS 崩溃了,无法再次运行

python - Django:我真的需要在应用程序中使用 apps.py 吗?

ruby - 如何在 Ruby 中抓取、解析和抓取文件?