我正在将TradeStation EasyLanguage指标代码转换为C++ DLL.使用TradeStation API,可以访问C++ DLL中的市场数据,如下所示:
double currentBarDT = pELObject->DateTimeMD[iDataNumber]->AsDateTime[0];
Run Code Online (Sandbox Code Playgroud)
我的问题是:
当变量'currentBarDT'的值改变/更新时,C++中是否有可能"监视"或"监听"?我想使用更改值作为触发器来使用Boost.Signals2生成信号.
我不是专家程序员,但我试图改变一些技术指标在名为TradeStation的财务图表包中的显示方式(而不是特定的图表供应商是相关的).
问题在于:大多数指标都围绕零点绘制,有时它们会在接近此点的位置振荡,有时甚至会很远.我想改变指标的绘制方式,使它们在零点附近振荡.但这里是棘手的部分,我不想过多地扭曲它们的形状; 一些变化是好的,不可避免的,但我仍然希望这些指标能够被识别出来.
在过去,我尝试了很多方法,一种方法是使用对数型比例,但这并不成功,因为它使得任何振动达到非常高的价值几乎无关紧要 - 这不是目标.目标是尽量保持指标的任何一个振荡几乎相同,但改变它的位置,使其更接近零(中心).或换一种方式; 目标是使指标执行类似形状的振荡,但这些振荡的中心应该更接近零(指标范围的中心).
有没有人知道,或者可以想到一种方法可以做到这一点?是否有任何算法可以帮助保持任何价格序列在中心点附近摆动更多而不会对原始版本造成太大的扭曲?
对此有任何帮助将不胜感激,谢谢.
== ==更新
粉红色的线是原始的振荡器,我画的黑线.它粗略地代表了我的目标.圆圈区域显示绘制的线与零交叉的位置,使其零值大致位于振荡的中心...但是与原始振荡相比,振荡的整体形状仍然可识别,高点的差异也较小每次振荡的低点; 即它们的价值更相似.我已经尝试将几种不同的Detrend函数添加到各种指标中,但我发现这会使形状扭曲太多.
更新2
我试过将y轴线性减小50%和80%,不幸的是,这似乎只是作为一个比例因子而行动?它是否正确?它似乎没有改变不同振荡之间的关系.如果您看到我的示例图,则绘制的黑线具有更稳定的高和低振荡,即它们在值/大小上更相似,这是关键目标.
接下来,我将尝试在绘图中添加一个高通过滤器,以查看给出的结果以及它是否与我的目标更接近.
像往常一样,随意发表任何评论,因为他们感激不尽.
克里斯
更新3
嗨,大家好,我还对指标实施了高通滤波器.这也没有做到这一点.这似乎也是一个比例因素.基本上我所追求的是使较大的振荡较小,较小的振荡较大.将任何指标用于更加同步的范围 - 并在保持相关指标的基本属性的同时执行此操作...描述它的更好方法可能是我采用阻尼公式?
有没有人有任何其他想法,或者我应该尝试的事情?干杯!!!
我需要在Tradestation的EasyLanguage到C++之间构建一个"翻译器"(交叉编译器是正确的词吗?).但是,没有关于EasyLanguage语法的完整文档(我可以找到).
作为一个更普遍的问题,如果我们知道(或者即使我们不知道)存在某些基本标记,如果在一些语言"A"中有一组有效的程序,是否可以辨别出"A"的语法?比如'if''other'和保留字,或者这是那些未解决的案例特定(难?)问题.
我可以使用任何有用的工具来开始吗?