标签: trading

开发Java交易应用程序:是否存在用于定义交易规则的模式/框架?

我正在设计一个交易应用程序,它将使用Market的API在Market上下订单.这不是投资银行中那种复杂的高性能算法交易应用程序.这只是一个小型的个人应用程序,根据市场情况/趋势每天交易两到三次
.应用程序将(大致)包含以下模块/包:
策略
- 实际交易算法
分析
- 用于分析的类市场上的实时价格和订单以产生买/卖信号
服务
- 用于维持与市场的连接,检索市场信息和下达买/卖订单的类别.
到目前为止,应用程序所需的一切似乎都可以在互联网上找到:
*Apache CXF用于生成用于访问市场Web服务的Java类.
*Apache Maths用于执行定价分析
*Wikipedia用于各种设计模式,即工厂,主题/观察者,州等.

然而,我真正陷入困境的是算法.我决定使用State模式将逻辑分组划分为在满足某些市场条件时应执行的各种逻辑.问题是我开始意识到每个州类很可能包含if else语句的爆炸:

if(this_condition) {
    // do something
} else if (another_condition) {
    // do something else
} else {
    // etc..., etc...
}
Run Code Online (Sandbox Code Playgroud)


我不禁觉得我在这里遗漏了一些东西,并且必须存在一些我不知道的框架或设计模式,这使得开发人员能够将给定业务上下文的所有输入和输出封装到有限数量的可以构建业务规则[算法]的业务操作[输入/输出].即不必对算法进行硬编码,我希望应该可以将应用程序变成某种规则处理器.不幸的是,我不知道从哪里开始.我希望我已经清楚地解释了我的困境,如果你想让我澄清一切,请告诉我.谢谢

trading

5
推荐指数
0
解决办法
3801
查看次数

如何使用Python中的FIFO方法计算股票交易的已实现损益?

我正在寻找一个Python插件,它可以使用FIFO方法计算许多股票交易的已实现盈亏.

例如,假设我们有以下三种MSFT交易:

+75 MSFT 25.10
+50 MSFT 25.12
-100 MSFT 25.22

出售100股25.22股将完全抵消买入75的25.10,部分净买入50买入25.12

已实现损益= 75*(25.22 - 25.10)+ 25*(25.22 - 25.12)= $ 11.50

突出的位置是:

+25 MSFT 25.12

python trading stocks

5
推荐指数
1
解决办法
7884
查看次数

操纵价格序列(指标)的帮助围绕中心值振荡

我不是专家程序员,但我试图改变一些技术指标在名为TradeStation的财务图表包中的显示方式(而不是特定的图表供应商是相关的).

问题在于:大多数指标都围绕零点绘制,有时它们会在接近此点的位置振荡,有时甚至会很远.我想改变指标的绘制方式,使它们在零点附近振荡.但这里是棘手的部分,我不想过多地扭曲它们的形状; 一些变化是好的,不可避免的,但我仍然希望这些指标能够被识别出来.

在过去,我尝试了很多方法,一种方法是使用对数型比例,但这并不成功,因为它使得任何振动达到非常高的价值几乎无关紧要 - 这不是目标.目标是尽量保持指标的任何一个振荡几乎相同,但改变它的位置,使其更接近零(中心).或换一种方式; 目标是使指标执行类似形状的振荡,但这些振荡的中心应该更接近零(指标范围的中心).

有没有人知道,或者可以想到一种方法可以做到这一点?是否有任何算法可以帮助保持任何价格序列在中心点附近摆动更多而不会对原始版本造成太大的扭曲?

对此有任何帮助将不胜感激,谢谢.

== ==更新 在此输入图像描述 粉红色的线是原始的振荡器,我画的黑线.它粗略地代表了我的目标.圆圈区域显示绘制的线与零交叉的位置,使其零值大致位于振荡的中心...但是与原始振荡相比,振荡的整体形状仍然可识别,高点的差异也较小每次振荡的低点; 即它们的价值更相似.我已经尝试将几种不同的Detrend函数添加到各种指标中,但我发现这会使形状扭曲太多.

更新2

我试过将y轴线性减小50%和80%,不幸的是,这似乎只是作为一个比例因子而行动?它是否正确?它似乎没有改变不同振荡之间的关系.如果您看到我的示例图,则绘制的黑线具有更稳定的高和低振荡,即它们在值/大小上更相似,这是关键目标.

接下来,我将尝试在绘图中添加一个高通过滤器,以查看给出的结果以及它是否与我的目标更接近.

像往常一样,随意发表任何评论,因为他们感激不尽.

克里斯

更新3

嗨,大家好,我还对指标实施了高通滤波器.这也没有做到这一点.这似乎也是一个比例因素.基本上我所追求的是使较大的振荡较小,较小的振荡较大.将任何指标用于更加同步的范围 - 并在保持相关指标的基本属性的同时执行此操作...描述它的更好方法可能是我采用阻尼公式?

有没有人有任何其他想法,或者我应该尝试的事情?干杯!!!

language-agnostic algorithm statistics trading tradestation

5
推荐指数
1
解决办法
418
查看次数

用于开发自动交易算法的课程等?

有没有人知道任何课程等教学人如何学习如何应用技术分析和交易机制来开发自动交易算法?

analysis trading algorithmic-trading

5
推荐指数
1
解决办法
245
查看次数

如何在Python ebay sdk中添加多张图片

这是我的设置:

Python 3.4

使用Trading API

试图打电话给eBay的"VerifyAddItem"

我标记了我在哪里得到错误,PicURL并且我正在尝试发布多个带有多个URL的图片.我目前只是尝试了两张图片让我们说http://i.ebayimg.com/picture1http://i.ebayimg.com/picture2.(我意识到这些不是真实的图片,但这不是我遇到的问题的一部分)

eBay API Documentations声明To specify multiple pictures, send each URL in a separate, PictureDetails.PictureURL element. The first URL passed in will be the Gallery image and appears on the View Item page.所以我尝试通过以下两行无济于事:

"PictureDetails": {"PictureURL": ["http://i.ebayimg.com/picture1",
                                  "http://i.ebayimg.com/picture2"]}
Run Code Online (Sandbox Code Playgroud)

"PictureDetails": [{"PictureURL": "http://i.ebayimg.com/picture1"},
                   {"PictureURL": "http://i.ebayimg.com/picture2"}]
Run Code Online (Sandbox Code Playgroud)

我分别从eBay的连接中得到以下错误:

VerifyAddItem: Class: RequestError, Severity: Error, Code: 37, Input data is invalid. 
Input data for tag <Item.PictureDetails.PictureURL[2]> is invalid or missing. Please 
check API …
Run Code Online (Sandbox Code Playgroud)

python trading python-3.x ebay-api

5
推荐指数
1
解决办法
520
查看次数

参考先前退出价格的 Pine 脚本入场策略

我正在尝试在电视中建立一个策略(仅限多头头寸),其中strategy.entry将考虑之前的退出价格。例如:

strategy.entry("long", strategy.long, when = longcondition==true)
strategy.close("long", strategy.close, when = longcondition==false)
Run Code Online (Sandbox Code Playgroud)

除了 longcondition==true 之外,我还想为 Strategy.entry 插入另一个条件,它说明了以下意图:

strategy.entry("long", strategy.long, when = longcondition==true and close[1] < previousExitPrice)
Run Code Online (Sandbox Code Playgroud)

怎样做才正确呢?预先感谢您的答复。

trading algorithmic-trading pine-script

5
推荐指数
1
解决办法
1367
查看次数

如何在Amibroker回测期间获取交易的利润百分比

我正在使用 Amibroker v6.3

我想了解回测期间进行的交易的利润百分比,然后相应地调整卖出标准。当利润低于10%时,我想使用这个函数sell_below10()。当利润>10%时,则使用函数 sell_abv10()。

如何在回测期间检测交易的利润百分比,以便我可以相应地使用正确的卖出功能?

谢谢。

trading algorithmic-trading back-testing amibroker

5
推荐指数
1
解决办法
925
查看次数

Pinescript 设置仓位大小

我的策略()完全有效,但现在我正在尝试管理资金投入交易的方式。

\n

这是我目前的情况:
\n我的止损设置为最后 10 个柱线的最低点,止盈设置为 1.5 倍止损。
\n我的策略.退出:

\n
strategy.exit("EXIT LONG","LONG", stop=longSL, limit=longTP)\n
Run Code Online (Sandbox Code Playgroud)\n

到这里为止,一切都运行良好。

\n

问题:
\n即使我使用:

\n
strategy("TEST MACD DEFAULT", shorttitle="MACD", overlay=true, initial_capital=1000, default_qty_type=strategy.equity, default_qty_value=1, currency=currency.EUR, process_orders_on_close=true, pyramiding=0)\n
Run Code Online (Sandbox Code Playgroud)\n

钱没有按照我想要的方式投入交易。

\n

我想要什么:
\n我的资本为 1000\xe2\x82\xac。
\n我希望我的止损(已设置为最后 10 个柱中的最低点)为我资本的 1% = 10\xe2\x82\xac。
\n我的 TP 是 1.5xSL,所以它是 15\xe2\x82\xac。
\n这意味着对于我输掉的每笔交易,我会输掉 10\xe2\x82\xac,而对于我赢的每笔交易,我会赢取 15\xe2\x82\xac。
\n但这不是我所拥有的:\n在此输入图像描述

\n

问题: \n
\n我怎样才能做到这一点?

\n

这是我的代码(仅适用于多头头寸):

\n
//@version=4\nstrategy("TEST MACD DEFAULT", shorttitle="MACD", overlay=true, initial_capital=1000, default_qty_type=strategy.cash, default_qty_value=10, currency=currency.EUR, process_orders_on_close=true, pyramiding=0)\n\n// MACD\n[macdLine, signalLine, _] = macd(close, 12, 26, 9)\n\n// EMA …
Run Code Online (Sandbox Code Playgroud)

trading pine-script

5
推荐指数
1
解决办法
2万
查看次数

如何在PineScript中获取default_qty_value?

我正在编写一个策略,我想根据策略设置中设置的 default_qty_value 执行计算。是的,我知道我可以使用strategy.position_avg_price来获取头寸大小,但这些计算必须在策略打开之前完成。

\n

有没有办法检索这个值,或者用户是否需要进行输入?

\n

这是代码。

\n
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/\n// \xc2\xa9 EduardoMattje\n//@version=4\n\nstrategy("Reversal closing price", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=10000)\n\n// Settings\n\norder_direction = input("Both", "Order direction", options=["Both", "Long", "Short"])\nreward_risk_ratio = input(2.0, "Reward to risk ratio", minval=1.0, step=0.1)\nstop_lookback = input(3, "Stoploss candle lookback", minval=1)\nallow_retracing = input(true, "Allow price retracing")\ndisregard_trend = input(false, "Allow trades to take place regardless of the trend")\nma_cross_stop = input(false, "Close if MA crosses in oposite direction")\nsrc …
Run Code Online (Sandbox Code Playgroud)

trading pine-script

5
推荐指数
1
解决办法
2280
查看次数

Kraken Exchange API:AddOrder的expiretm参数

APIAddOrder()指令是否支持expiretm限价单?EGeneral:Invalid arguments:expiretm我设置这个参数的时候总是报错。

我尝试使用以下设置在 3 秒后过期:

1) expiretm = 3             # int
2) expiretm = "+3"          # string
3) expiretm = 1500226507    # int
Run Code Online (Sandbox Code Playgroud)

运气不好,全部返回上述错误。只有expiretm = 0被接受。

  • 是否expiretm支持限价订单?
  • 哪种语法是正确的:(1) 或 (2)?

谢谢

api finance currency trading

4
推荐指数
1
解决办法
1241
查看次数