MarketCalls. //www.a1gz9.icu 简单智能技术分析和交易策略 星期六,6月26日2021年17:56:02 +0000 念头美国 每小时 1 市场的突变–新的delta变体。 //www.a1gz9.icu/futures-and-options/mutation-of-the-markets-the-new-delta-variant.html //www.a1gz9.icu/futures-and-options/mutation-of-the-markets-the-new-delta-variant.html#respond 星期六,26日2021年6月17日17:55:59 +0000 //www.a1gz9.icu/?p=55266 七月的7月期货踢球和少数少数次数拖累到50,而且由于这种沉闷的六月系列和腹期期挥发。六月系列在青少年级别带来了更高的热情和vix价格。

帖子 市场的突变–新的delta变体。首先出现了MarketCalls..

]]>
七月的7月期货踢球和少数少数次数拖累到50,而且由于这种沉闷的六月系列和腹期期挥发。六月系列在青少年级别带来了更高的热情和vix价格。

漂亮的每小时图表

和漂亮的每小时图表在6月系列中介于15400-15900级之间停滞不前。每周三次,每周,每月都有两次分歧。大多数六月系列见证了沉闷的无聊时光,交易者字面上乞讨了盘区价摇摆。波动性已经死亡,有时我甚至检查了数据送达的连接,因为市场活动在大多数地方停止了。

Nifty OrderFlow卷低于每300秒的1000次。那’填充了3个填充量/秒。毋庸置疑,这些天伤害了卷的密切关注核心。那些波动的日子,Wilder价格行动,有趣的过山车骑。

突然突然想到了市场突变或交易市场变异的贸易商?凭借在这里的市场和突变,这就是我发现的。在涂鸦关于突变恐惧的新闻之后,终于了解到市场对病毒突变具有强大的增强免疫力。如果市场上必须有崩溃,则不太可能成为病毒突变。可能是别的东西。

但嘿市场经常突变,比三角洲和三角洲加上突变的变种更好。这里唯一的不同是当市场突变它测试贸易商的免疫力,并没有适应新的市场条件,一个人必须灭亡。

帖子 市场的突变–新的delta变体。首先出现了MarketCalls..

]]>
//www.a1gz9.icu/futures-and-options/mutation-of-the-markets-the-new-delta-variant.html/feed 0
allomojo.Platform Now Open to Firstock Users //www.a1gz9.icu/algomojo/algomojo-platform-now-open-to-firstock-users.html //www.a1gz9.icu/algomojo/algomojo-platform-now-open-to-firstock-users.html#respond 星期六,6月2021日13:09:39 +0000 //www.a1gz9.icu/?p=55254 我们很自豪能够为Firitock用户提供allomojo访问权限。 Firdock A基于班加罗尔的折扣公司与Algomojo合作,为他们的用户提供Algotraders服务。

帖子 allomojo.Platform Now Open to Firstock Users首先出现了MarketCalls..

]]>
我们很自豪能够为Firitock用户提供allomojo访问权限。 一体的 基于班加罗尔的折扣公司与Algomojo合作,为其用户提供Algotraders服务。

现在Firdock的用户可以享受免费的API的Algotrading Access。对于打开A的人,将为客户启用免费平台访问权限通过algomojo新的Firdock帐户并将获得生命周期进入allomojo.Firstock Terminal做手动和自动交易。

Finfolab,algomojo的母公司太设计了Firdock API’s . Partner API’s。 Developer API仪表板,API库将启用对客户的自动交易。

Firdock也出现了独特的功能E GTT订单,同步多腿选项订单提交,在下订单之前跟踪保证金要求,订购保护功能以及更多的技术丰富的功能,将尖端技术从第一天开始给活跃的交易员带来。

allomojo.  是一个交易技术平台,使算法交易者能够在多个经纪商中快速部署交易算法。 它提供了最简单的API来构建复杂的交易策略。它旨在由开发人员,Quants和算法交易者使用。

Algomojo是一个基于网络的自动交易平台,内置于经纪商API,其具有贸易商的交易员构建的简约设计。

此图像具有空的alt属性;它的文件名是algomojo.png

algomojo配有集成的一体化解决方案(API,免费&专有的策略,数据传输,虚拟服务器,以及一个单一市场的最终支持的结尾)。它有助于交易者简化他们的Algo交易,使得贸易商的生活更易于。

allomojo.Supported Trade Execution Platforms

1. Amibroker.
2. MetaTrader 4.
3. MetaTrader 5.
4. Excel,Google电子表格
5. Python.
5. Tradingview.
5. C#基于应用程序
6.支持REST API的任何自定义程序

此图像具有空的alt属性;它的文件名是image-15.png

使用Firitock凭据登录allomojo平台

现在转到了  fs.algomojo.com. 并输入您的客户ID和密码,然后按登录。

Algomojo支持的功能 API.

Algotraders现在可以使用以下功能来使用Firdock -algomojo API发送自动交易者

1)PlaceOrder.
2)Placemultiord.
3)PlaceFnoOptionsOrder.
4)ModifyOrder.
5)取消顺序
6)userdetails.
7)限制
8)持股
9)订单
10)贸易簿
11)位置本
12)OrderHistory.
13)getquotes.

结账在这里完成一体的–allomojo api文档

从我的API部分创建algomojo api

使用这些API键&API秘密密钥从Algomojo支持的交易平台发送订单。

6)下载allomojo的多个代理桥 并根据说明安装多代理桥

Algomojo涉及的总体成本是多少?

贸易商通过algomojo与我们的合作伙伴经纪人开设交易账户,将享受免费API +免费平台费用,折扣经纪人(RS20令)/百分比的经纪人(0.01%)或我们的合作伙伴经纪人提供的经纪人)。

以下是部署algos时所涉及的成本列表

1)交易API成本:免费(对于allomojo帐户开放客户)
2)allomojo.Platform Fee:免费(对于allomojo帐户开放客户)
3) 数据馈送 Cost: 可选的
4)数据API成本: 可选的
4)策略成本:可提供免费策略和专有交易策略(可选)。交易员可以部署自己的交易策略
5)支持平台:Amibroker,MetaTrader,TradingView,Excel,C#,Python,支持REST-HTTP API的任何平台
6)虚拟私人服务器: 可选的
7)经纪人费用:所有F.&o根据您的伙伴经纪人根据您的经纪人计划将继续以20卢比或0.01%收取股票交易,并没有限制与合作伙伴经纪人的经纪人计划。无论经纪人的经纪人allomojo客户端都会享受 无限&寿命免费访问交易API和Algomojo平台。
8)结束结束集成/聊天支持 : 自由。

Algomojo为NSE Cash,NSE期货,MCX期货提供数据产品&nse货币,目前与授权数据供应商全局统一&Truitata提供数据&数据API产品为客户提供。


非algomojo客户的定价是什么??

目前,希望在algomojo下映射algomojo平台但未在algomojo下映射的非algomojo客户将有用免费allomojo api访问权限,但是将有999卢比/月的平台费,或者将收取5999卢比的平台费用 对于采取Tradestudio认购订阅/直接在Algomojo下开设交易账户,将完全放弃平台费。

在支付Algomojo平台订阅费用之前,可以为非algomojo客户提供7天的免费试用版。

交易终端访问完全免费提供非algomojo客户端,以便手动发送订单/从algomojo到他们的经纪帐户中检索秩序/商品录制/打开位置/观看表。

Algomojo的功能

看书

使用Minimalistic设计支持轻量级观察名单,易于使用界面添加符号和多个观看表。

algomojo api

Algomojo附带内置API,也支持默认情况下启用7天的免费试用版的伙伴代理的现有客户端。

allomojo.offers 免费API +免费交易平台 到algomojo用户放置,修改,取消订单。目前,Agromojo API是免费的,用于使用Algomojo合作伙伴经纪人开户的用户。免费API平台+免费无铝业交易平台,提供没有前期费用, 没有最低营业额,没有特殊条款和条件,没有条款,没有附加条件。

订单日志

提供订单日志以验证时间戳和审核在交易软件中执行的交易和生成的实时信号之间的差异。

注意:订单日志实时捕获交易执行,仅显示通过自动交易平台发送的订单。

订单: 从orionbook中可以获得手动打印的订单和交易软件生成的订单的状态(待处理,执行,拒绝)。

商标:商标表明执行的订单。

职位: 可以在位置部分查看任何打开位置。提供一个按钮正方形关闭以关闭所有打开位置,并且可以在Asymbol选择的基础上关闭位置。

位置还显示盘子系和位置MTM。

控股:

Demat账户控股可以在控股部分查看和管理。

战略库

Algomojo还提供免费的&贸易商的专有战略图书馆利用市场趋势和市场势头。

数据馈送

DataFeed Section为用户提供订阅NSE Cash,NSE期货,NSE货币和MCX期货及选择。

支持像Amibroker,Ninjatrader,Excel的各种图表平台,Excel都是桌面和服务器版本。

we partner with Both Globaldatafeeds & Truedata to distribute their products in our platform. 3 days of Datafeed Trial will be enabled to all the users of Algomojo to test run their strategies before live exection. To test drive datafeeds connect with the support team at support@algomojo.com or check with the Algomojo Chat support team.

虚拟私人服务器

VPS服务器或Virtual Private Server是WATGO Traders的主要需求,这些交易员希望使用足够的互联网和电源备份100%正常运行时间。可以直接从平台本身订阅Windows VPS服务器。

结束结束集成支持

一个人可以结束到结束集成支持来配置,测试&部署交易策略。

将在结束于结束后,将提供给Algomojo客户端。

1)集成Algomojo Bridge进行AutoTrading。
2)DataFeed集成(Amibroker,Ninjatrader,Excel等)
3)集成Windows VPS服务器。
3)测试和部署交易策略。

而且,如果交易者需要在Amibroker / MetaTrader / TradingView中编码的自定义交易策略,然后将提供按需自由职业支持,以其定制设计策略在客户上。

allomojo api文档

Firorock的Algomojo API文档 全面了解交易平台支持的各种功能。它帮助交易者建立自己的执行逻辑。

Algomojo支持的订单类型是什么?

Algomojo(市场订单,限制订单,SL-Limit Order SL-MKT订单,GTT订单,盖订单,AMO订单)支持所有类型的订单,多订单

allomojo.also supports rule based ATM, ITM, OTM Option Orders

Algomojo支持订单放置,订单修改,订单执行和检索oriterbook,贸易书,订单历史记录&通过API打开位置。

基于Web的桥梁比基于exe的桥慢吗?

不。两者都使用REST API作为通信层来发送或接收来自代理服务器的信息。执行延迟主要取决于客户的互联网速度和经纪人的服务器响应能力。实际上基于Web的桥梁 更容易使用 and 客户端不需要上级/安装/维护 side.

如果在您有任何疑问的情况下,您可以发送邮件 support@algomojo.com

帖子 allomojo.Platform Now Open to Firstock Users首先出现了MarketCalls..

]]>
//www.a1gz9.icu/algomojo/algomojo-platform-now-open-to-firstock-users.html/feed 0
allomojo.–向多客户发送同时订单–Excelsheet模块和VBA代码 //www.a1gz9.icu/excel/algomojo-sending-simultaneous-orders-to-multi-clients-excelsheet-module-and-vba-code.html //www.a1gz9.icu/excel/algomojo-sending-simultaneous-orders-to-multi-clients-excelsheet-module-and-vba-code.html#respond 星期六,6月2021日03:04:39 +0000 //www.a1gz9.icu/?p=55243 在Excel中设计了一个简单的界面,从Excel应用程序发送到多个交易账户。代码使用algomojo api使用placemultiorder函数传输多个订单。

帖子 allomojo.–向多客户发送同时订单–Excelsheet模块和VBA代码首先出现了MarketCalls..

]]>
获得了几个交易员的经常要求,以自动化基于Excel的按钮交易,点击一个按钮可以在多个帐户中打出订单(朋友& family).

在Excel中设计了一个简单的界面,从Excel应用程序发送到多个交易账户。代码使用algomojo api使用使用的多个订单placemultiorder函数。

支持的经纪人:天使经纪人
要求:algomojo登录

下载Excel文件

下载Excel文件后要遵循的步骤
1)下载文件并将其解压缩到本地文件夹
2)按Enable Content按钮作为宏已被禁用的安全警告显示
3)片 下订单用于发送乘数
4)片 客户 用于管理多个客户端,API键,API密钥

以下是Excel表中的受支持的订单参数

帕纳 价值 描述
种类 普通的
stoploss.
amo.
罗戈
正常顺序(常规)
止损顺序,
市场订单后,
Robo(支架订购)
TransactionType.

OrderType. 市场
限制
stoploss. _limit.
stoploss. _market.
市场订单(MKT)
限制订单(L)
止损限制顺序(SL)
止损市场订单(SL-M)
产品类别 交货
带着向前
利润
盘中
现金&履行股权(CNC)
期货和期权(NRML)正常
保证金交货
Margin Contaday Square Off(MIS)
支架订购(仅限Robo)
期间
IOC
常规订单
立即或取消
交换 BSE.
n
nfo.
MCX.
BSE. 股权
nse股权
未来的未来和选择
MCX. 商品

订单参数

这些参数在不同的顺序品种上很常见。

帕纳 描述
Tradingsymbol.仪器的交易符号
symboltoken.Symbol Token is unique identifier ( can be obtained from Algomojo Watchlist section->Security Info)
交换 交换姓名(BSE,NSE,NFO,MCX)
TransactionType.买卖
OrderType. 订单类型(市场,限制等)
数量 交易的数量
产品类别产品类型(CNC,MIS)
价格 最小或最高价格以执行订单(限制订单)
触发器订单应触发的价格(SL,SL-M)
Squareoff. 仅适用于Robo(括号订购)
stoploss. 仅适用于Robo(括号订购)
trailingstoploss.仅适用于Robo(括号订购)
披露Quantity.公开披露的数量(适用于股票交易)
期间 订单持续时间(日,IOC)

VBA源代码

Sub FetchLogin()

Dim Broker As String
Dim Version As String
Dim apikey As String
Dim apisecret As String
Dim apidata As String
Dim numofRows As Integer
Dim i As Integer

Broker = "an"
Version = "1.0"

numofRows = Range("A5", Range("A5").End(xlDown)).Rows.Count
apidata = "{}"

For i = 0 To numofRows - 1
    apikey = Sheets("Clients").Cells(5 + i, "B").Value
    apisecret = Sheets("Clients").Cells(5 + i, "C").Value
    Limits = AMConnect(apikey, apisecret, Broker, Version, "Limits", apidata)
    Profile = AMConnect(apikey, apisecret, Broker, Version, "Profile", apidata)
    Set ProfileResponse = JsonConverter.ParseJson(Profile)
    Set LimitsResponse = JsonConverter.ParseJson(Limits)
    
    If StrComp(ProfileResponse("message"), "SUCCESS") = 0 Then
        Sheets("Clients").Cells(5 + i, "D") = ProfileResponse("data")("name")
        Sheets("Clients").Cells(5 + i, "E") = LimitsResponse("data")("net")
        Sheets("Clients").Cells(5 + i, "F") = LimitsResponse("data")("availablecash")
    Else
        Sheets("Clients").Cells(5 + i, "D") = "Login Error"
        Sheets("Clients").Cells(5 + i, "E") = "Login Error"
        Sheets("Clients").Cells(5 + i, "F") = "Login Error"
    End If
    
Next
End Sub




Sub AlgomojoMulitOrder()


Dim Broker As String
Dim Version As String
Dim ClientID As String
Dim user_apikey As String
Dim api_secret As String
Dim masterapikey As String
Dim masterapisecret As String
Dim variety As String
Dim tradingsymbol As String
Dim symboltoken As String
Dim transactiontype As String
Dim exchange As String
Dim ordertype As String
Dim producttype As String
Dim duration As String
Dim price As String
Dim squareoff As String
Dim stoploss As String
Dim quantity As String
Dim triggerprice As String
Dim trailingStopLoss As String
Dim disclosedquantity As String

Dim apidata As String
Dim numofRows As Long
Dim i As Integer

Broker = Sheets("PlaceOrder").Cells(5, "A").Value
Version = Sheets("PlaceOrder").Cells(5, "B").Value
masterapikey = Sheets("PlaceOrder").Cells(5, "D").Value
masterapisecret = Sheets("PlaceOrder").Cells(5, "E").Value
tradingsymbol = Sheets("PlaceOrder").Cells(5, "F").Value
symboltoken = Sheets("PlaceOrder").Cells(5, "G").Value
quantity = Sheets("PlaceOrder").Cells(5, "H").Value
transactiontype = Sheets("PlaceOrder").Cells(5, "I").Value
exchange = Sheets("PlaceOrder").Cells(5, "J").Value
variety = Sheets("PlaceOrder").Cells(5, "K").Value
ordertype = Sheets("PlaceOrder").Cells(5, "L").Value
producttype = Sheets("PlaceOrder").Cells(5, "M").Value
duration = Sheets("PlaceOrder").Cells(5, "N").Value
price = Sheets("PlaceOrder").Cells(5, "O").Value
triggerprice = Sheets("PlaceOrder").Cells(5, "P").Value
squareoff = Sheets("PlaceOrder").Cells(5, "Q").Value
stoploss = Sheets("PlaceOrder").Cells(5, "R").Value
trailingStopLoss = Sheets("PlaceOrder").Cells(5, "S").Value
disclosedquantity = Sheets("PlaceOrder").Cells(5, "T").Value

'clear the table contents of the display output
Worksheets("PlaceOrder").Range("C16:F200").Clear

Sheets("Clients").Activate
numofRows = Sheets("Clients").Range("A5", Range("A5").End(xlDown)).Rows.Count
apidata = "{""" & "orders" & """:" & "[ "

stgy_name = "Excel"


    
For i = 0 To numofRows - 1
    Sheets("Clients").Activate
    ClientID = Sheets("Clients").Cells(5 + i, "A").Value
    user_apikey = Sheets("Clients").Cells(5 + i, "B").Value
    api_secret = Sheets("Clients").Cells(5 + i, "C").Value
    Sheets("PlaceOrder").Activate
    Sheets("PlaceOrder").Cells(16 + i, "C") = ClientID
    apidata = apidata & "{""" _
                & "order_refno" & """:""" & CStr(i + 1) & """,""" _
                & "user_apikey" & """:""" & user_apikey & """,""" _
                & "api_secret" & """:""" & api_secret & """,""" _
                & "stgy_name" & """:""" & stgy_name & """,""" _
                & " 种类 " & """:""" & variety & """,""" _
                & "Tradingsymbol." & """:""" & tradingsymbol & """,""" _
                & "symboltoken." & """:""" & symboltoken & """,""" _
                & "TransactionType." & """:""" & transactiontype & """,""" _
                & " 交换 " & """:""" & exchange & """,""" _
                & " OrderType. " & """:""" & ordertype & """,""" _
                & "产品类别" & """:""" & producttype & """,""" _
                & " 期间 " & """:""" & duration & """,""" _
                & " 价格 " & """:""" & price & """,""" _
                & " Squareoff. " & """:""" & squareoff & """,""" _
                & " stoploss. " & """:""" & stoploss & """,""" _
                & " 数量 " & """:""" & quantity & """,""" _
                & "触发器" & """:""" & triggerprice & """,""" _
                & "trailingstoploss." & """:""" & trailingStopLoss & """,""" _
                & "披露Quantity." & """:""" & disclosedquantity
                
    If i = numofRows - 1 Then
        apidata = apidata & """}"
    Else
        apidata = apidata & """},"
    End If
       
                
Next
    
apidata = apidata & "]}"



PlaceOrder = AMConnect(masterapikey, masterapisecret, Broker, Version, "PlaceMultiOrder", apidata)
Set PlaceOrderResponse = JsonConverter.ParseJson(PlaceOrder)



For i = 0 To numofRows - 1
     If StrComp(PlaceOrderResponse(i + 1)("message"), "SUCCESS") = 0 Then
        Sheets("PlaceOrder").Cells(16 + i, "D").Value = PlaceOrderResponse(i + 1)("message")
        Sheets("PlaceOrder").Cells(16 + i, "E").Value = PlaceOrderResponse(i + 1)("data")("script")
        Sheets("PlaceOrder").Cells(16 + i, "F").Value = PlaceOrderResponse(i + 1)("data")("orderid")
        Sheets("PlaceOrder").Cells(16 + i, "F").NumberFormat = "0"
    Else
        Sheets("PlaceOrder").Cells(16 + i, "D") = "Login Error"
        Sheets("PlaceOrder").Cells(16 + i, "E") = "Login Error"
        Sheets("PlaceOrder").Cells(16 + i, "F") = "Login Error"
    End If
    
Next

'check multiorder response
'Sheets("PlaceOrder").Cells(12, "D") = PlaceOrder

End Sub




Private Function AMConnect(api_key As String, api_secret As String, Broker As String, Version As String, api_name As String, InTD As String) As String
    Dim objHTTP As Object
    Dim result As String
    Dim postdate As String
    Dim BrkPrefix As String
    Dim BaseURL As String
    BaseURL = "//" & LCase(Broker) & "api.algomojo.com/" & Version & "/"
    postdata = "{""" & "api_key" & """:""" & api_key & """,""" _
                    & "api_secret" & """:""" & api_secret & """,""" _
                    & "data" & """:" & InTD & "}"
    'MsgBox (postdata)
    Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
    Url = BaseURL & api_name
    objHTTP.Open "POST", Url, False
    objHTTP.setRequestHeader "Content-type", "application/json"
    objHTTP.send (postdata)
    result = objHTTP.responseText
    Set objHTTP = Nothing
    AMConnect = result
    
End Function


学分

VBA代码使用VBA-JSON for JSON处理

帖子 allomojo.–向多客户发送同时订单–Excelsheet模块和VBA代码首先出现了MarketCalls..

]]>
//www.a1gz9.icu/excel/algomojo-sending-simultaneous-orders-to-multi-clients-excelsheet-module-and-vba-code.html/feed 0
PlaceFnoOptionsorder和Placemultiorder API为Angel Broking推出– Algomojo Users //www.a1gz9.icu/algomojo/placefnooptionsorder-and-placemultiorder-launched-for-angel-broking-algomojo-users.html //www.a1gz9.icu/algomojo/placefnooptionsorder-and-placemultiorder-launched-for-angel-broking-algomojo-users.html#respond 太阳,20日2021年6月02:52:42 +0000 //www.a1gz9.icu/?p=55230 两个主要功能推出了天使经纪人 - algomojo用户,利用选项订单和篮子订单,帮助量子开发人员显着降低编码工作并改善其交易过程。

帖子 PlaceFnoOptionsorder和Placemultiorder API为Angel Broking推出– Algomojo Users首先出现了MarketCalls..

]]>
两个主要功能推出了天使经纪人–Algomojo用户利用选项订单和篮子订单,帮助Quant开发人员显着降低他们的编码工作并改善其交易过程。

什么是publfnooptionsorder?

PlaceFnoOptionsorder用于发送索引选项订单以发送ATM,ITM,OTM选项订单,银行娘家,Finnifty)

以下是PlaceFoOptionsorder的示例请求和响应

有关Algomojo API访问的详细信息 API. 文档  部分

端点URL. : //anapi.algomojo.com/1.0/PlaceFOOptionsOrder

Request example :

{
    "api_key":"c1997d92a3bb556a67dca7d1446b70",
    "api_secret":"5306433329e81ba41203653417063c",
    "data":
      {
        "stgy_name":"Options",
        " 种类 ":" 普通的 ",
        "spot_sym":"BANKNIFTY",
        "expiry_dt":"01JUL21",
        "opt_type":"CE",
        "TransactionType.":" 买 ",
        " OrderType. ":" 市场 ",
        " 数量 ":"25",
        " 价格 ":"0",
        "触发器":"0",
        "产品类别":"带着向前",
        "strike_int":"100",
        "offset":"10"
      }
}

Response example :

{
    "status":true,
    "message":"SUCCESS",
    "errorcode":"",
    "data":
        {
         "script": "BANKNIFTY01JUL2135200CE",
         "orderid": "210618001112998"
        }
}

选项偏移控制

可以使用偏移来选择ATM,ITM,OTM选项。

什么是placemultiorder?

它是将篮子命令解雇到单个帐户或多个帐户的篮子命令。

向单个帐户发送篮序订单

EndPoint URL : //anapi.algomojo.com/1.0/PlaceFOOptionsOrder

可以使用以下消息格式将篮子订单发送到同一帐户


{
    "api_key":"b48e4db30e47326722a388c03eb4ee26",
    "api_secret":"fc3ed44d0914b0e6466f9ff2e3ae003a",
    "data":
      {
          "orders" : 
            [
                {
                "order_refno":"1",
                "user_apikey":"b48e4db30e47326722a388c03eb4ee26",
                "api_secret":"fc3ed44d0914b0e6466f9ff2e3ae003a",
                "stgy_name": "Test Strategy",
                " 种类 ":" 普通的 ",
                "Tradingsymbol.":"SBIN-EQ",
                "symboltoken.":"3045",
                "TransactionType.":" 买 ",
                " 交换 ":" n ",
                " OrderType. ":" 市场 ",
                "产品类别":" 交货 ",
                " 期间 ":" 日 ",
                " 价格 ":"0",
                " Squareoff. ":"0",
                " stoploss. ":"0",
                " 数量 ":"1",
                "触发器": "0",
                "trailingstoploss.": "0",
                "披露Quantity.":"0"
                },
                {
                "order_refno":"2",
                "strg_name": "Test Strategy",
                "user_apikey":"b48e4db30e47326722a388c03eb4ee26",
                "api_secret":"fc3ed44d0914b0e6466f9ff2e3ae003a",
                " 种类 ":" 普通的 ",
                "Tradingsymbol.":"RELIANCE-EQ",
                "symboltoken.":"2885",
                "TransactionType.":" 卖 ",
                " 交换 ":" n ",
                " OrderType. ":" 市场 ",
                "产品类别":" 交货 ",
                " 期间 ":" 日 ",
                " 价格 ":"0",
                " Squareoff. ":"0",
                " stoploss. ":"0",
                " 数量 ":"1",
                "触发器": "0",
                "trailingstoploss.": "0",
                "披露Quantity.":"0"
                }
            ]
      }
}

Response example :

[
    {
        "status": true,
        "message": "SUCCESS",
        "errorcode": "",
        "data": {
            "script": "SBIN-EQ",
            "orderid": "210428001357677"
        }
    },
    {
        "status": true,
        "message": "SUCCESS",
        "errorcode": "",
        "data": {
            "script": "RELIANCE-EQ",
            "orderid": "210428001357678"
        }
    }
]

向多个帐户发送订单

EndPoint URL : //anapi.algomojo.com/1.0/PlaceFOOptionsOrder

可以使用以下消息传递格式为同一贸易仪器发送多个帐户订单

{
    "api_key":"b48e4db30e47326722a388c03eb4ee26",
    "api_secret":"fc3ed44d0914b0e6466f9ff2e3ae003a",
    "data":
      {
          "orders" : 
            [
                {
                "order_refno":"1",
                "user_apikey":"b48e4db30e47326722a388c03eb4ee26",
                "api_secret":"fc3ed44d0914b0e6466f9ff2e3ae003a",
                "stgy_name": "Test Strategy",
                " 种类 ":" 普通的 ",
                "Tradingsymbol.":"SBIN-EQ",
                "symboltoken.":"3045",
                "TransactionType.":" 买 ",
                " 交换 ":" n ",
                " OrderType. ":" 市场 ",
                "产品类别":" 盘中 ",
                " 期间 ":" 日 ",
                " 价格 ":"0",
                " Squareoff. ":"0",
                " stoploss. ":"0",
                " 数量 ":"1",
                "触发器": "0",
                "trailingstoploss.": "0",
                "披露Quantity.":"0"
                },
                {
                "order_refno":"2",
                "strg_name": "Test Strategy",
                "user_apikey":"dfsdf45sdf34g555ssef567jhrt6ssv4",
                "api_secret":"59ff2544sdfhkllwer5559ff2e3ae003a",
                " 种类 ":" 普通的 ",
                "Tradingsymbol.":"SBIN-EQ",
                "symboltoken.":"3045",
                "TransactionType.":" 买 ",
                " 交换 ":" n ",
                " OrderType. ":" 市场 ",
                "产品类别":" 盘中 ",
                " 期间 ":" 日 ",
                " 价格 ":"0",
                " Squareoff. ":"0",
                " stoploss. ":"0",
                " 数量 ":"1",
                "触发器": "0",
                "trailingstoploss.": "0",
                "披露Quantity.":"0"
                }
            ]
      }
}

帖子 PlaceFnoOptionsorder和Placemultiorder API为Angel Broking推出– Algomojo Users首先出现了MarketCalls..

]]>
//www.a1gz9.icu/algomojo/placefnooptionsorder-and-placemultiorder-launched-for-angel-broking-algomojo-users.html/feed 0
兰德曼–用于期货和选项交易员的简化次恢复和自动交易界面 //www.a1gz9.icu/quantman/quantman-simplified-backtesting-and-automated-trading-interface-for-futures-and-options-traders.html //www.a1gz9.icu/quantman/quantman-simplified-backtesting-and-automated-trading-interface-for-futures-and-options-traders.html#comments Sun,06 Jun 2021 13:12:00 +0000 //www.a1gz9.icu/?p=55215 兰德曼 为想要创建的系统交易商/ Quant Traders提供零代码交易平台&反向他们自己的交易规则(简单&复杂的策略)验证他们的交易理念。 Quantman提供了50多个指标(Renko,Heiken-Ashi,Supertrend趋势,趋势指标,动量指标,波动性指标,图表模式等,),并管理云中的整个45年的正宗交换数据,以便用户可以专注于他们的交易策略而不困扰GBS数据以分析市场。

帖子 兰德曼–用于期货和选项交易员的简化次恢复和自动交易界面首先出现了MarketCalls..

]]>
兰德曼 为想要创建的系统交易员/ Quant Traders提供零代码交易平台&反向他们自己的交易规则(简单&复杂的策略)验证他们的交易理念。 Quantman提供了50多个指标(Renko,Heiken-Ashi,Supertrend趋势,趋势指标,动量指标,波动指标,图表模式等,)并管理整个4.5年的正宗交换数据在云中因此,用户可以专注于他们的交易策略,而不会困扰GBS的数据来分析市场。

兰德曼 如何与其他反向界面不同?

兰德曼is India’s first Directional + Non directional + Pair Trading backtesting platform并提供无限制的反馈无差错执行(半自动和全自动控制)。如果您在那里有一个编码器,您可以知道管理到Options数据的GBS是多么复杂,并为选项交易模块构建反向控制+执行控制。 Quantman解决了这种高级功能,如果您是Wannabe Quant,则可以通过零编码知识进行播放,并通过最小的学习曲线构建简单/复杂的交易策略。

兰德曼 的特征

1)重新测试简单的技术条件和更快的回波界面。
2)重新击败盘中和位置期货和期权战略
3)重新测试未来的策略,期货+期权基于格言的战略
4)支持回溯选项策略(支持单腿和多腿策略)
5)每月和每周选项重新击败
6)对交易策略重新击败
7)股票曲线,贸易报告,绘制& Risk metrics
8)一个触摸和完整的自动执行控件。
9)基于时间的次延误
10)停止和目标,基于尾随停止的次
11)现成的交易策略
12)公众显示与完整的回溯报告交易策略。

支持的交流

国家证券交易所(期货& Options )

创建交易策略– Basic Mode

兰德曼 用两种模式(基本,先进模式)提出。基本模式是希望使用逻辑控件配置交易策略的用户,基于时间&止损,目标,尾随停止控制。

创建交易策略– Advance Mode

哪个前进模式可以启动构建多个时间帧指示器并创建复杂的逻辑计算。人们可以使用先进模式在不同的图表类型(Candles,Heikinashi,Renko)之上应用策略,多时间框架策略。

回报报告

兰德曼– 未来的路线图

1)实时期货和选项筛选器
2)电报警报实时交易执行
3)备选期间基于希腊语的罢工选择,同时重新测试
4)自动化选项调整
5)基于AI的交易策略控制。
6)投资组合反向击球。

与Quantman开发团队互动,真的他们是关于市场的热情人士,并希望将来将在未来发布更有趣和重要的功能,并感谢您对共同交易者带来这种简单,以更快地建立复杂的交易策略。

帖子 兰德曼–用于期货和选项交易员的简化次恢复和自动交易界面首先出现了MarketCalls..

]]>
//www.a1gz9.icu/quantman/quantman-simplified-backtesting-and-automated-trading-interface-for-futures-and-options-traders.html/feed 1
[免费网络研讨会]从划痕开始 //www.a1gz9.icu/amibroker/free-webinar-starting-amibroker-afl-coding-right-from-the-scratch.html //www.a1gz9.icu/amibroker/free-webinar-starting-amibroker-afl-coding-right-from-the-scratch.html#respond 星期一,17月2021日19:20:03 +0000 //www.a1gz9.icu/?p=55207 有兴趣创建自己的指标/购买或出售交易系统。了解如何使用Amibroker构建您自己的交易系统。如果您是alibroker新的,或者想测试Amibroker AFL的Waters编码此会议可帮助您对您进行编码学习。

帖子 [免费网络研讨会]从划痕开始首先出现了MarketCalls..

]]>
有兴趣创建自己的指标/购买或出售交易系统。了解如何使用Amibroker构建您自己的交易系统。如果您是alibroker新的,或者想测试Amibroker AFL的Waters编码此会议可帮助您对您进行编码学习。

什么时候 :23 - 5月 - 2021(08:00 PM– 09:00 PM IST )

您将在培训课程中学习什么

1)如何在Amibroker中构建交易系统
2)Amibroker参数控件
3)Amibroker内置功能
4)如何在Amibroker中自动执行您的交易系统

谁该参加?

Amibroker AFL编码会话为想要编码自己的指标/交易系统的非编码器设计。
系统贸易商,学生,机构贸易商,基金经理,道具交易员,全职交易员,兼职交易员&学生可以参加会议。

帖子 [免费网络研讨会]从划痕开始首先出现了MarketCalls..

]]>
//www.a1gz9.icu/amibroker/free-webinar-starting-amibroker-afl-coding-right-from-the-scratch.html/feed 0
Angel Broking Multi-Client Amibroker贸易模块 //www.a1gz9.icu/algo-trading/angel-broking-multi-client-amibroker-trading-module.html //www.a1gz9.icu/algo-trading/angel-broking-multi-client-amibroker-trading-module.html#respond 星期二,11月11日2021 23:41:30 +0000 //www.a1gz9.icu/?p=55202 获得了天使经纪人的经常要求,以自动化基于Amibroker的交易系统,其中来自图表的一个单一代来说可以在多个账户中打出订单(朋友&家庭)。以下是ReadyMade执行模块可以使用其交易系统插入以发送多订单,并轻松在同一代理下配置多客户端。

帖子 Angel Broking Multi-Client Amibroker贸易模块首先出现了MarketCalls..

]]>
获得了天使经纪人的经常要求,以自动化基于Amibroker的交易系统,其中来自图表的一个单一代来说可以在多个账户中打出订单(朋友&家庭)。以下是ReadyMade执行模块可以使用其交易系统插入以发送多订单,并轻松在同一代理下配置多客户端。

Angel Broking Multi-Client Amibroker贸易模块

谁可以利用这个模块?

任何可以访问Amibroker和访问权限的交易者 allomojo.Trading Platform 可以触发他们的购买&将信号系统从其交易系统销售给多个帐户(朋友&家庭)。即一个Amibroker到多个帐户中的命令。

支持哪些经纪人?

目前的模块仅支持天使经纪人

可以连接多少帐户?

目前对可以连接的客户端数量没有限制。

多客户帐户控件 - AFL编码块

多客户帐户控制块包含多个客户端,交易符号和控件的配置,以配置许多交易账户。如果需要添加更多客户端,那么这是示例格式。客户详细信息需要配置才能发送多个客户端帐户。

_SECTION_BEGIN("Multi Client Account Controls - Algomojo");

TotalAccounts = Param("Total Accounts",4,1,25,1);
TradingSymbol = ParamStr("TradingSymbol","RELIANCE-EQ");
Token = ParamStr("Token","2885"); //token is a mandatory parameter can be obtained from Symbol Details from Algomojo Watchlist 
Broker = Paramlist("Broker","an",0);  //Broker Short Code ab - aliceblue, tj - tradejini, zb - zebu, mt-mastertrust, en- enrich


//Client 1 Details
ClientId1 = ParamStr("ClientId1","K190553");
ApiKey1 =  ParamStr("ApiKey1","b48e4db30e47326722a388c03eb4ee26");
ApiSecret1 =  ParamStr("ApiSecret1","fc3ed44d0914b0e6466f9ff2e3ae003a");
Quantity1 = ParamStr("Quantity1","5");


//Client 2 Details
ClientId2 = ParamStr("ClientId2","K190553");
ApiKey2 =  ParamStr("ApiKey2","b48e4db30e47326722a388c03eb4ee26");
ApiSecret2 =  ParamStr("ApiSecret2","fc3ed44d0914b0e6466f9ff2e3ae003a");
Quantity2 = ParamStr("Quantity2","10");


//Client 3 Details
ClientId3 = ParamStr("ClientId3","K190553");
ApiKey3 =  ParamStr("ApiKey3","b48e4db30e47326722a388c03eb4ee26");
ApiSecret3 =  ParamStr("ApiSecret3","fc3ed44d0914b0e6466f9ff2e3ae003a");
Quantity3 = ParamStr("Quantity3","15");


//Client 4 Details
ClientId4 = ParamStr("ClientId4","K190553");
ApiKey4 =  ParamStr("ApiKey4","b48e4db30e47326722a388c03eb4ee26");
ApiSecret4 =  ParamStr("ApiSecret4","fc3ed44d0914b0e6466f9ff2e3ae003a");
Quantity4 = ParamStr("Quantity4","25");



_SECTION_END();

基于图表的多客户交易模块

该模块是一种准备好的模块,可以与已配置为买入,销售,短,覆盖条件的Amibroker基于Amibroker基于的交易系统连接。


//Single Broker - Multi Client Algomojo Trading AFL
//Coded by Rajandran R - Co-Founder - Algomojo / Founder - Marketcalls
//Version 1.0
//Date : 02nd May 2021
//Website : www.algomojo.com / www.marketcalls.in

_SECTION_BEGIN("Multi Client Account Controls - Algomojo");

TotalAccounts = Param("Total Accounts",4,1,25,1);
TradingSymbol = ParamStr("TradingSymbol","RELIANCE-EQ");
Token = ParamStr("Token","2885"); //token is a mandatory parameter can be obtained from Symbol Details from Algomojo Watchlist 
Broker = Paramlist("Broker","an",0);  //Broker Short Code ab - aliceblue, tj - tradejini, zb - zebu, mt-mastertrust, en- enrich


//Client 1 Details
ClientId1 = ParamStr("ClientId1","K190553");
ApiKey1 =  ParamStr("ApiKey1","b48e4db30e47326722a388c03eb4ee26");
ApiSecret1 =  ParamStr("ApiSecret1","fc3ed44d0914b0e6466f9ff2e3ae003a");
Quantity1 = ParamStr("Quantity1","5");


//Client 2 Details
ClientId2 = ParamStr("ClientId2","K190553");
ApiKey2 =  ParamStr("ApiKey2","b48e4db30e47326722a388c03eb4ee26");
ApiSecret2 =  ParamStr("ApiSecret2","fc3ed44d0914b0e6466f9ff2e3ae003a");
Quantity2 = ParamStr("Quantity2","10");


//Client 3 Details
ClientId3 = ParamStr("ClientId3","K190553");
ApiKey3 =  ParamStr("ApiKey3","b48e4db30e47326722a388c03eb4ee26");
ApiSecret3 =  ParamStr("ApiSecret3","fc3ed44d0914b0e6466f9ff2e3ae003a");
Quantity3 = ParamStr("Quantity3","15");


//Client 4 Details
ClientId4 = ParamStr("ClientId4","K190553");
ApiKey4 =  ParamStr("ApiKey4","b48e4db30e47326722a388c03eb4ee26");
ApiSecret4 =  ParamStr("ApiSecret4","fc3ed44d0914b0e6466f9ff2e3ae003a");
Quantity4 = ParamStr("Quantity4","25");



_SECTION_END();

_SECTION_BEGIN("Single Broker Multi Client Charting Module");


//Common Mapping
Exchange = ParamList(" 交换 "," nfo. |NSE|BSE|CDS|MCX",1);  //Common Mapping
ordertype = ParamList("Order Type"," 市场 |LIMIT|STOPLOSS_LIMIT|STOPLOSS_MARKET",0);
producttype = ParamList("Product Type"," 交货 |CARRYFORWARD|MARGIN|INTRADAY|AMO_MARGIN|AMO_DELIVERY|AMO_CARRYFORWARD",0);
variety = ParamList(" 种类 "," 普通的 |STOPLOSS|AMO",0); 
price = Param("Price",0,0,100000);
triggerprice = Param("触发器",0,0,100000);
squareoff = ParamStr("SqrOffvalue","0"); 
stoploss = ParamStr("SLvalue","0");
trailingStopLoss = ParamStr("trailingSL","0"); 
disclosedquantity = 0;
duration = ParamStr(" 期间 "," 日 ");

ver = ParamStr(" API.  Version","1.0");
tradedelay = Param("Execution Delay",0,0,1); // 0 - Execution with No Delay after a signal, 1- Execution at the end of the candle
stgy_name = ParamStr("Strategy Name","Multi Broker Execution"); // Strategy Name
EnableAlgo = ParamList("Algo Mode","Disable|Enable|LongOnly|ShortOnly",0); // Algo Mode



//Initialization
resp = "";


//Configure Trade Execution Delay


AlgoBuy = lastvalue(Ref(Buy,-tradedelay));
AlgoSell = lastvalue(Ref(Sell,-tradedelay));
AlgoShort = lastvalue(Ref(Short,-tradedelay));
AlgoCover = lastvalue(Ref(Cover,-tradedelay));






//Static Varibales for Order Protection

static_name_ = Name()+GetChartID()+interval(2)+stgy_name;
static_name_algo = Name()+GetChartID()+interval(2)+stgy_name+"algostatus";
//StaticVarSet(static_name_algo, -1); 


//Algo Dashboard

GfxSelectFont( " 博 OK ANTIQUA", 14, 100 );
GfxSetBkMode( 1 );
if(EnableAlgo == "Enable")
{
AlgoStatus = "Algo Enabled";
GfxSetTextColor( colorGreen ); 
GfxTextOut( "Algostatus : "+AlgoStatus , 20, 40); 
if(Nz(StaticVarGet(static_name_algo),0)!=1)
{
_TRACE("Algo Status : Enabled");
StaticVarSet(static_name_algo, 1);
}
}
if(EnableAlgo == "Disable")
{
AlgoStatus = "Algo Disabled";
GfxSetTextColor( colorRed ); 
GfxTextOut( "Algostatus : "+AlgoStatus , 20, 40); 
if(Nz(StaticVarGet(static_name_algo),0)!=0)
{
_TRACE("Algo Status : Disabled");
StaticVarSet(static_name_algo, 0);
}
}
if(EnableAlgo == "LongOnly")
{
AlgoStatus = "Long Only";
GfxSetTextColor( colorYellow ); 
GfxTextOut( "Algostatus : "+AlgoStatus , 20, 40); 
if(Nz(StaticVarGet(static_name_algo),0)!=2)
{
_TRACE("Algo Status : Long Only");
StaticVarSet(static_name_algo, 2);
}
}
if(EnableAlgo == "ShortOnly")
{
AlgoStatus = "Short Only";
GfxSetTextColor( colorYellow ); 
GfxTextOut( "Algostatus : "+AlgoStatus , 20, 40); 
if(Nz(StaticVarGet(static_name_algo),0)!=3)
{
_TRACE("Algo Status : Short Only");
StaticVarSet(static_name_algo, 3);
}
}

function apidata(Accounts,Action,multiplier){


	head = "{\"orders\" : [";
	tail = "  ]}";
	body = "";
	
	
	for(i=1;i<=Accounts;i++)
	{
	qty = int(StrToNum(VarGetText("Quantity"+i))*multiplier);
	msg = "{   \"order_refno\":\""+i+"\",   \"user_apikey\":\""+VarGetText("ApiKey"+i)+"\", \"api_secret\":\""+VarGetText("ApiSecret"+i)+"\", \"stgy_name\": \""+stgy_name+"\", \" 种类 \":\""+variety+"\", \"Tradingsymbol.\":\""+TradingSymbol+"\", \"symboltoken.\":\""+Token+"\", \"TransactionType.\":\""+Action+"\", \" 交换 \":\""+Exchange+"\", \" OrderType. \":\""+ordertype+"\", \"产品类别\":\""+producttype+"\", \" 期间 \":\""+duration+"\", \" 价格 \":\""+price+"\", \" Squareoff. \":\""+squareoff+"\", \" stoploss. \":\""+stoploss+"\", \" 数量 \":\""+VarGetText("Quantity"+i)+"\", \"触发器\":\""+triggerprice+"\", \"trailingstoploss.\":\""+trailingStopLoss+"\", \"披露Quantity.\":\""+disclosedquantity+"\" }";
                
		if(i==1)
		{
		body = msg; 
		}    
		else
		{
		body = body + "," + msg;
		}   
		}
    api_data = head + body + tail;
	return api_data;
	
}

//Buy and Sell Order Functions

function Buyorder(multiplier)
{
	
    algomojo=CreateObject("AMAMIBRIDGE.Main");
	api = apidata(TotalAccounts," 买 ",multiplier);     
    _TRACE("Broker API Data  "+api);
    GetPerformanceCounter(True);
    resp=algomojo.AMDispatcher(ApiKey1, ApiSecret1,"PlaceMultiOrder",api,Broker,ver);
    elapsed = GetPerformanceCounter()/1000;
    _TRACE("Execution Time : "+elapsed);
    _TRACE("Broker API Response  "+resp);
    _TRACE("Execution Period : "+elapsed);
}



function sellorder(multiplier)
{
    algomojo=CreateObject("AMAMIBRIDGE.Main");
	api = apidata(TotalAccounts," 卖 ",multiplier);  
    _TRACE("Broker API Data  "+api);
    GetPerformanceCounter(True);
    resp=algomojo.AMDispatcher(ApiKey1, ApiSecret1,"PlaceMultiOrder",api,Broker,ver);
    elapsed = GetPerformanceCounter()/1000;
    _TRACE("Execution Time : "+elapsed);
    _TRACE("Broker API Response  "+resp);
    _TRACE("Execution Period : "+elapsed);
}


//Execution Module

if(EnableAlgo != "Disable")
    {
        lasttime = StrFormat("%0.f",LastValue(BarIndex()));
        
        SetChartBkColor(colorDarkGrey);
        if(EnableAlgo == "Enable")
        {   
            if (AlgoBuy==True AND AlgoCover == True AND StaticVarGet(static_name_+"buyCoverAlgo")==0 AND StaticVarGetText(static_name_+"buyCoverAlgo_barvalue") != lasttime )
            {
            // reverse Long Entry 
                buyorder(2);
                StaticVarSetText(static_name_+"buyCoverAlgo_barvalue",lasttime);  
                StaticVarSet(static_name_+"buyCoverAlgo",1); //Algo Order was triggered, no more order on this bar
                _TRACE("Strategy : "+ stgy_name +"AlgoStatus : "+ EnableAlgo +"Chart Symbol : "+ Name()+ "Signal = Buy AND Cover");
        
            }
            else if ((AlgoBuy != True OR AlgoCover != True))
            {   
                StaticVarSet(static_name_+"buyCoverAlgo",0);
            }
            
            if (AlgoBuy==True AND AlgoCover != True AND StaticVarGet(static_name_+"buyAlgo")==0 AND StaticVarGetText(static_name_+"buyAlgo_barvalue") != lasttime)
            {
            // Long Entry 
                buyorder(1);
                StaticVarSetText(static_name_+"buyAlgo_barvalue",lasttime); 
                StaticVarSet(static_name_+"buyAlgo",1); //Algo Order was triggered, no more order on this bar
                _TRACE("Strategy : "+ stgy_name +"AlgoStatus : "+ EnableAlgo +"Chart Symbol : "+ Name()+ "Signal = Buy");
            }
            else if (AlgoBuy != True)
            {   
                StaticVarSet(static_name_+"buyAlgo",0);
                
            }
            if (AlgoSell==true AND AlgoShort != True AND StaticVarGet(static_name_+"sellAlgo")==0 AND StaticVarGetText(static_name_+"sellAlgo_barvalue") != lasttime)
            {     
            // Long Exit 
                sellorder(1);
                StaticVarSetText(static_name_+"sellAlgo_barvalue",lasttime); 
                StaticVarSet(static_name_+"sellAlgo",1); //Algo Order was triggered, no more order on this bar
                _TRACE("Strategy : "+ stgy_name +"AlgoStatus : "+ EnableAlgo +"Chart Symbol : "+ Name()+ "Signal = Sell");
            }
            else if (AlgoSell != True )
            {   
                StaticVarSet(static_name_+"sellAlgo",0);
            }
            if (AlgoShort==True AND AlgoSell==True AND  StaticVarGet(static_name_+"ShortSellAlgo")==0 AND StaticVarGetText(static_name_+"ShortSellAlgo_barvalue") != lasttime)
            {
            // reverse Short Entry 
                sellorder(2);
                StaticVarSetText(static_name_+"ShortsellAlgo_barvalue",lasttime); 
                StaticVarSet(static_name_+"ShortSellAlgo",1); //Algo Order was triggered, no more order on this bar
                _TRACE("Strategy : "+ stgy_name +"AlgoStatus : "+ EnableAlgo +"Chart Symbol : "+ Name()+ "Signal = Short and Sell");
            }
            else if ((AlgoShort != True OR AlgoSell != True))
            {   
                StaticVarSet(static_name_+"ShortSellAlgo",0);
            }
                
            if (AlgoShort==True  AND  AlgoSell != True AND StaticVarGet(static_name_+"ShortAlgo")==0 AND  StaticVarGetText(static_name_+"ShortAlgo_barvalue") != lasttime)
            {
            // Short Entry
                sellorder(1);
                StaticVarSetText(static_name_+"ShortAlgo_barvalue",lasttime); 
                StaticVarSet(static_name_+"ShortAlgo",1); //Algo Order was triggered, no more order on this bar
                _TRACE("Strategy : "+ stgy_name +"AlgoStatus : "+ EnableAlgo +"Chart Symbol : "+ Name()+ "Signal = Short");
            }
            else if (AlgoShort != True )
            {   
                StaticVarSet(static_name_+"ShortAlgo",0);
            }
            if (AlgoCover==true AND AlgoBuy != True AND StaticVarGet(static_name_+"CoverAlgo")==0 AND StaticVarGetText(static_name_+"CoverAlgo_barvalue") != lasttime)
            {
            // Short Exit
                buyorder(1);
                StaticVarSetText(static_name_+"CoverAlgo_barvalue",lasttime); 
                StaticVarSet(static_name_+"CoverAlgo",1); //Algo Order was triggered, no more order on this bar
                _TRACE("Strategy : "+ stgy_name +"AlgoStatus : "+ EnableAlgo +"Chart Symbol : "+ Name()+ "Signal = Cover");
            }
            else if (AlgoCover != True )
            {   
                StaticVarSet(static_name_+"CoverAlgo",0);
            }
        }
        
        
        
        else if(EnableAlgo == "LongOnly")
        {
            
            if (AlgoBuy==True AND StaticVarGet(static_name_+"buyAlgo")==0 AND StaticVarGetText(static_name_+"buyAlgo_barvalue") != lasttime)
            {  
            //  Long Entry
                buyorder(1);
                StaticVarSetText(static_name_+"buyAlgo_barvalue",lasttime); 
                StaticVarSet(static_name_+"buyAlgo",1); //Algo Order was triggered, no more order on this bar
                _TRACE("Strategy : "+ stgy_name +"AlgoStatus : "+ EnableAlgo +"Chart Symbol : "+ Name()+ "Signal = Buy");
            }
            else if (AlgoBuy != True)
            {   
                StaticVarSet(static_name_+"buyAlgo",0);
            }
            if (AlgoSell==true AND StaticVarGet(static_name_+"sellAlgo")==0 AND StaticVarGetText(static_name_+"sellAlgo_barvalue") != lasttime)
            {  
            // Long Exit
                sellorder(1);
                StaticVarSetText(static_name_+"sellAlgo_barvalue",lasttime); 
                StaticVarSet(static_name_+"sellAlgo",1); //Algo Order was triggered, no more order on this bar
                _TRACE("Strategy : "+ stgy_name +"AlgoStatus : "+ EnableAlgo +"Chart Symbol : "+ Name()+ "Signal = Sell");
            }
            else if (AlgoSell != True )
            {   
                StaticVarSet(static_name_+"sellAlgo",0);
            }
        }
        else if(EnableAlgo == "ShortOnly")
        {
            if (AlgoShort==True AND StaticVarGet(static_name_+"ShortAlgo")==0 AND StaticVarGetText(static_name_+"ShortAlgo_barvalue") != lasttime)
            {
            // Short Entry
                sellorder(1);
                StaticVarSetText(static_name_+"ShortAlgo_barvalue",lasttime); 
                StaticVarSet(static_name_+"ShortAlgo",1); //Algo Order was triggered, no more order on this bar
                _TRACE("Strategy : "+ stgy_name +"AlgoStatus : "+ EnableAlgo +"Chart Symbol : "+ Name()+ "Signal = Short");
            }
            else if (AlgoShort != True )
            {   
                StaticVarSet(static_name_+"ShortAlgo",0);
            }
            if (AlgoCover==true AND StaticVarGet(static_name_+"CoverAlgo")==0 AND StaticVarGetText(static_name_+"CoverAlgo_barvalue") != lasttime)
            {
            // Short Exit
                buyorder(1);
                StaticVarSetText(static_name_+"CoverAlgo_barvalue",lasttime); 
                StaticVarSet(static_name_+"CoverAlgo",1); //Algo Order was triggered, no more order on this bar
                _TRACE("Strategy : "+ stgy_name +"AlgoStatus : "+ EnableAlgo +"Chart Symbol : "+ Name()+ "Signal = Cover");
            }
            else if (AlgoCover != True)
            {   
                StaticVarSet(static_name_+"CoverAlgo",0);
            }
        }
        
    }//end main if

    
_SECTION_END();

随意使用根据您的要求使用修改代码。负责任地使用此模块!
在使用Live Automation Trading环境中使用模块之前使用模块正确测试系统。

帖子 Angel Broking Multi-Client Amibroker贸易模块首先出现了MarketCalls..

]]>
//www.a1gz9.icu/algo-trading/angel-broking-multi-client-amibroker-trading-module.html/feed 0
[免费网络研讨会]如何以纪律处分,数据驱动的方式接近市场? //www.a1gz9.icu/webinars/free-webinar-how-to-approach-the-markets-in-a-disciplined-data-driven-manner.html //www.a1gz9.icu/webinars/free-webinar-how-to-approach-the-markets-in-a-disciplined-data-driven-manner.html#respond 星期二,11月11日2021 20:31:04 +0000 //www.a1gz9.icu/?p=55200 这种现场网络研讨会专注于一种实用的方法来带来纪律交易,并帮助贸易商专注于情感数据驱动的交易决策,以及情绪交易决策如何带来高度纪律的交易的重要性。如何基于数据驱动和更多关于数据驱动的VS事件驱动交易系统的洞察力来设计交易。

帖子 [免费网络研讨会]如何以纪律处分,数据驱动的方式接近市场?首先出现了MarketCalls..

]]>

这个现场网络研讨会专注于一种实用的方法来带来纪律交易,并帮助贸易商专注于情感数据驱动的交易决策,以及情绪交易决策如何带来高度纪律的交易的重要性。如何根据数据驱动和更多关于数据驱动的VS事件驱动的交易系统的更有见解来设计交易。

你将在网络研讨会中学到什么?

  • 系统交易简介
  • 在Amibroker中创建和恢复交易系统
  • 交易系统交易纪律的重要性
  • 数据驱动VS甚至驱动交易系统

帖子 [免费网络研讨会]如何以纪律处分,数据驱动的方式接近市场?首先出现了MarketCalls..

]]>
//www.a1gz9.icu/webinars/free-webinar-how-to-approach-the-markets-in-a-disciplined-data-driven-manner.html/feed 0
选项按钮交易ATM,ITM,OTM选项– Amibroker AFL Code //www.a1gz9.icu/algomojo/option-button-trading-to-trade-atm-itm-otm-options.html //www.a1gz9.icu/algomojo/option-button-trading-to-trade-atm-itm-otm-options.html#respond 星期二,11月11日2021年18:20:13 +0000 //www.a1gz9.icu/?p=55189 这是一个简单的按钮交易模块,可用于向按钮发送选项交易顺序。用户可以配置按钮以发送ATM,ITM,OTM选项,并且可以使用一个触摸将能够在分秒钟发送订单。输入订单和退出订单按钮提供给用户。

帖子 选项按钮交易ATM,ITM,OTM选项– Amibroker AFL Code首先出现了MarketCalls..

]]>

这是一个简单的按钮交易模块,可用于向按钮发送选项交易顺序。用户可以配置按钮发送ATM,ITM,OTM选项,并且可以使用一个触摸,可以将订单发送分秒。输入订单和退出订单按钮提供给用户。

支持的经纪人:Aliceblue,Mastertrust,Tradejini,Zebu
alloplatform.:allomojo.
支持的almibroker版本:6.22或以上

纽扣 类型
长期入门入境订单
长期退出退出订单
长PE入口入境订单
长PE退出退出订单
短期入门入境订单
短期退出退出订单
短期入口入境订单
短PE退出退出订单

按钮偏移参数控件在Amibroker中

选项类型 抵消
atm 0
OTM. 积极价值
itm. 负值

执行选项订单的执行逻辑

用于退出选项顺序的执行逻辑

设置选项按钮交易AFL文件

1)将AFL文件保存在名称下allomojo.Options Button Trading.afl在almibroker / formulas / allomojo文件夹下。如果它没有创建algomojo文件夹’t exist.

/*
Created By : Rajandran R(Founder - Marketcalls / Co-Founder Algomojo )
Created on : 11 May 2021
Website : www.marketcalls.in / www.algomojo.com
*/

#include < algomojooptions.afl >  //remove the spaces to make the afl work

_SECTION_BEGIN("Amibroker Version Check");

Version(6.22);

RequestTimedRefresh(1, False); // Send orders even if Amibroker is minimized or Chart is not active

_SECTION_END();



_SECTION_BEGIN("Button Controls");


//Default strike is ATM, Positve Offset = OTM, Negative Offset = ITM -> AFL Side
spot = ParamStr("Spot Symbol","NIFTY");
expiry = ParamStr("Expiry Date","27MAY21");
iInterval= Param("Strike Interval",50,1,5000,1);



//Long CE Entry and Exit Button Controls
btn12_qty = Param("Long CE Qty",75,0,10000,1);
offset_btn12 = Param("Long CE Offset",0,-20,20,1);  
optiontype12 = WriteIf(offset_btn12 == 0, " atm ", WriteIf(offset_btn12<0," itm. "," OTM. "));
btn1_name = optiontype12+"-"+abs(offset_btn12)+" Long CE Entry "+btn12_qty+" shares";
btn2_name = optiontype12+"-"+abs(offset_btn12)+" Long CE Exit "+btn12_qty+" shares";

btn34_qty = Param("Long PE Qty",75,0,10000,1);
offset_btn34 = Param("Long PE Offset",0,-20,20,1);  
optiontype34 = WriteIf(offset_btn34 == 0, " atm ", WriteIf(offset_btn34<0," itm. "," OTM. "));
btn3_name = optiontype34+"-"+abs(offset_btn34)+" Long PE Entry "+btn34_qty+" shares";
btn4_name = optiontype34+"-"+abs(offset_btn34)+" Long PE Exit "+btn34_qty+" shares";

btn56_qty = Param("Short CE Qty",75,0,10000,1);
offset_btn56 = Param("Short CE Offset",0,-20,20,1);  
optiontype56 = WriteIf(offset_btn56 == 0, " atm ", WriteIf(offset_btn56<0," itm. "," OTM. "));

btn5_name = optiontype56+"-"+abs(offset_btn56)+" Short CE Entry "+btn56_qty+" shares";
btn6_name = optiontype56+"-"+abs(offset_btn56)+" Long CE Exit "+btn56_qty+" shares";

btn78_qty = Param("Short PE Qty",75,0,10000,1);
offset_btn78 = Param("Short PE Offset",0,-20,20,1); 
optiontype78 = WriteIf(offset_btn78 == 0, " atm ", WriteIf(offset_btn78<0," itm. "," OTM. ")); 
btn7_name = optiontype78+"-"+abs(offset_btn78)+" Shortong PE Entry "+btn78_qty+" shares";
btn8_name = optiontype78+"-"+abs(offset_btn78)+" Short PE Exit "+btn78_qty+" shares";

_SECTION_END();



_SECTION_BEGIN("Algo Dashboard");


static_name_ = Name()+GetChartID()+interval(2)+stgy_name;
static_name_algo = Name()+GetChartID()+interval(2)+stgy_name+"algostatus";

//StaticVarSet(static_name_algo, -1); 
GfxSelectFont( " 博 OK ANTIQUA", 14, 100 );
GfxSetBkMode( 1 );
if(EnableAlgo == "Enable")
{
AlgoStatus = "Algo Enabled";
GfxSetTextColor( colorGreen ); 
GfxTextOut( "Algostatus : "+AlgoStatus , 20, 40); 
if(Nz(StaticVarGet(static_name_algo),0)!=1)
{
_TRACE("Algo Status : Enabled");
StaticVarSet(static_name_algo, 1);
}
}
if(EnableAlgo == "Disable")
{
AlgoStatus = "Algo Disabled";
GfxSetTextColor( colorRed ); 
GfxTextOut( "Algostatus : "+AlgoStatus , 20, 40); 
if(Nz(StaticVarGet(static_name_algo),0)!=0)
{
_TRACE("Algo Status : Disabled");
StaticVarSet(static_name_algo, 0);
}
}
if(EnableAlgo == "LongOnly")
{
AlgoStatus = "Long Only";
GfxSetTextColor( colorYellow ); 
GfxTextOut( "Algostatus : "+AlgoStatus , 20, 40); 
if(Nz(StaticVarGet(static_name_algo),0)!=2)
{
_TRACE("Algo Status : Long Only");
StaticVarSet(static_name_algo, 2);
}
}
if(EnableAlgo == "ShortOnly")
{
AlgoStatus = "Short Only";
GfxSetTextColor( colorYellow ); 
GfxTextOut( "Algostatus : "+AlgoStatus , 20, 40); 
if(Nz(StaticVarGet(static_name_algo),0)!=3)
{
_TRACE("Algo Status : Short Only");
StaticVarSet(static_name_algo, 3);
}
}

_SECTION_END();



_SECTION_BEGIN("allomojo.Button GUI Creation and Event Handling");

resp = "";





function CreateGUI( ButtonName, x, y, width, Height ) {
	/// @link http://forum.amibroker.com/t/guibuttons-for-everyone/1716/4
	/// by beaver & fxshrat
	/// version 1.1
	global IDset;
	local id, event, clickeven;
	
	if( typeof( IDset ) == "undefined" ) IDset = 0; 

	//_TRACEF( "IDset before: %g", IDset );	
	GuiButton( ButtonName, ++IDset, x, y, width, height, 7 ); 
	//_TRACEF( "IDset after: %g", IDset );
	result = 1;
	return result;
	
}


function HandleEvents()
{

	result = 0;
	id = GuiGetEvent( 0, 0 );// receiving button id
	event = GuiGetEvent( 0, 1 );// receiving notifyflag
	clickevent = event == 1;
	
	
	
	
	
	LongCEEntry = id == 1 && clickevent;
	LongCEExit = id == 2 && clickevent;
	LongPEEntry = id == 3 && clickevent;
	LongPEExit = id == 4 && clickevent;
	ShortCEEntry = id == 5 && clickevent;
	ShortCEExit = id == 6 && clickevent;
	ShortPEEntry = id == 7 && clickevent;
	ShortPEExit = id == 8 && clickevent;
	
	
	
	result = 0;
	
	
	if(EnableAlgo == "Enable")
	{
	
	if( LongCEEntry AND StaticVarGet(Name()+GetChartID()+"LongCEEntry")==0 ) 
	{
		_TRACE("Call Long Entry");
		orderresponse = placeoptionorder(1,spot,expiry,iInterval,btn12_qty,"B","CE",offset_btn12); 
		result = 1;
		StaticVarSet(Name()+GetChartID()+"LongCEEntry",1); 
	}
	else
	{
		
		StaticVarSet(Name()+GetChartID()+"LongCEEntry",0);
	}
	
	if( LongCEExit AND StaticVarGet(Name()+GetChartID()+"LongCEExit")==0 ) 
	{
		_TRACE("Call Long Exit");
		sqoffstatus = squareoffoptions(1,"CE");
		result = 1;
		StaticVarSet(Name()+GetChartID()+"LongCEExit",1); 
	}
	else
	{
		StaticVarSet(Name()+GetChartID()+"LongCEExit",0);
	}
	
	if( LongPEEntry AND StaticVarGet(Name()+GetChartID()+"LongPEEntry")==0 ) 
	{
		_TRACE("Put Long Entry");
		orderresponse = placeoptionorder(2,spot,expiry,iInterval,btn34_qty,"B","PE",offset_btn34); 
		result = 1;
		StaticVarSet(Name()+GetChartID()+"LongPEEntry",1); 
	}
	else
	{
		StaticVarSet(Name()+GetChartID()+"LongPEEntry",0);
	}
	
	if( LongPEExit AND StaticVarGet(Name()+GetChartID()+"LongPEExit")==0 ) 
	{
		_TRACE("Put Long Exit");
		sqoffstatus = squareoffoptions(2,"PE");
		result = 1;
		StaticVarSet(Name()+GetChartID()+"LongPEExit",1); 
	}
	else
	{
		StaticVarSet(Name()+GetChartID()+"LongPEExit",0);
	}
	
	if( ShortCEEntry AND StaticVarGet(Name()+GetChartID()+"ShortCEEntry")==0 ) 
	{
		_TRACE("Call Short Entry");
		orderresponse = placeoptionorder(3,spot,expiry,iInterval,btn56_qty,"S","CE",offset_btn56); 
		result = 1;
		StaticVarSet(Name()+GetChartID()+"ShortCEEntry",1); 
	}
	else
	{
		StaticVarSet(Name()+GetChartID()+"ShortCEEntry",0);
	}
	
	if( ShortCEExit AND StaticVarGet(Name()+GetChartID()+"ShortCEExit")==0 ) 
	{
		_TRACE("Call Short Exit");
		sqoffstatus = squareoffoptions(3,"CE");
		result = 1;
		StaticVarSet(Name()+GetChartID()+"ShortCEExit",1); 
	}
	else
	{
		StaticVarSet(Name()+GetChartID()+"ShortCEExit",0);
	}
	
	if( ShortPEEntry AND StaticVarGet(Name()+GetChartID()+"ShortPEEntry")==0 ) 
	{
		_TRACE("Put Short Entry");
		orderresponse = placeoptionorder(4,spot,expiry,iInterval,btn78_qty,"S","PE",offset_btn78); 
		result = 1;
		StaticVarSet(Name()+GetChartID()+"ShortPEEntry",1); 
	}
	else
	{
		StaticVarSet(Name()+GetChartID()+"ShortPEEntry",0);
	}
	
	if( ShortPEExit AND StaticVarGet(Name()+GetChartID()+"ShortPEExit")==0 ) 
	{
		_TRACE("Put Short Exit");
		sqoffstatus = squareoffoptions(4,"PE");
		result = 1;
		StaticVarSet(Name()+GetChartID()+"ShortPEExit",1); 
	}
	else
	{
		StaticVarSet(Name()+GetChartID()+"ShortPEExit",0);
	}
	}
	
	
	return result;  //result = 1 - order is successfully placed, 0 - Algotrading is in disabled state or orders are not went through
	


}

	
	LongCEEntry = CreateGUI( btn1_name, 0, 100, 200, 30 );
	LongCEExit = CreateGUI( btn2_name, 200, 100, 200, 30 );
	
	LongPEEntry = CreateGUI( btn3_name, 0, 150, 200, 30 );
	LongPEExit = CreateGUI( btn4_name, 200, 150, 200, 30 );
	
	ShortCEEntry = CreateGUI( btn5_name, 0, 200, 200, 30 );
	ShortCEExit = CreateGUI( btn6_name, 200, 200, 200, 30 );
	
	ShortPEEntry = CreateGUI( btn7_name, 0, 250, 200, 30 );
	ShortPEExit = CreateGUI( btn8_name, 200, 250, 200, 30 );
	
	handleevents();
	
	
	
	GuiSetColors( 1, 2, 2, colorGreen, colorBlack, colorGreen, colorWhite, colorBlue, colorYellow, colorRed, colorBlack, colorYellow ); 
	GuiSetColors( 3, 4, 2, colorred, colorBlack, colorRed, colorWhite, colorBlue, colorYellow, colorRed, colorBlack, colorYellow ); 


	GuiSetColors( 5, 6, 2, colorBlue, colorBlack, colorBlue, colorWhite, colorBlue, colorYellow, colorRed, colorBlack, colorYellow ); 
	GuiSetColors( 7, 8, 2, colorLavender, colorBlack, colorLavender, colorWhite, colorBlue, colorYellow, colorRed, colorBlack, colorYellow ); 

_SECTION_END();

_SECTION_BEGIN("Price");

SetChartOptions(0, chartShowArrows | chartShowDates); //x-Axis will be plottted
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
//plot the candles
Plot(Close,"Close",colorDefault,GetPriceStyle() | styleNoTitle);

_SECTION_END();

2)在名称下复制AFL allomojooptions.afl. 在Path Amibroker \ Formulas \ Include文件夹下

//////////////////////////////////////////////
//Multi Broker Amibroker Option Execution Module
//Coded by Rajandran - Algomojo Co-Founder
//Date : 11/05/2021
//////////////////////////////////////////////



//Use this code only for Single Legged Long Only Options and Exiting Long Only Options


_SECTION_BEGIN("allomojo.Options");


uid = ParamStr("Client ID","TS2499");
user_apikey = ParamStr("user_apikey","86cbef19e7e61ccee91e497690d5814e"); //Enter your API key here
api_secret = ParamStr("api_secret","2c674f6696f5527e40af1b052c262178"); //Enter your API secret key here
s_prdt_ali = " 博 :BO||CNC:CNC||CO:CO||MIS:MIS||NRML:NRML";
prctyp = ParamList("prctyp","MKT|L|SL|SL-M",0);
Pcode = ParamList("Pcode","NRML|CO|MIS",2);
Price = ParamList("Price","0");
TrigPrice = ParamList("TrigPrice","0");
stgy_name = ParamStr("Strategy Name", "Options");
broker = ParamStr("Broker","tj"); //Broker Short Code - ab - aliceblue, tj - tradejini, zb - zebu, en - enrich
ver = ParamStr(" API.  Version","1.0");
fpath = ParamStr("Symbol Filepath", "C:\\Program Files (x86)\\AmiBroker\\Formulas\\Algomojo\\");
timer = 2; //3 seconds for providing delay after placing order
EnableAlgo = ParamList("Algo Mode","Enable|Disable",1); // Algo Mode
OrderAlerts = ParamToggle("Order Alerts","Enabled|Disabled",0);

RequestTimedRefresh(1,False);


function getnestorderno(response)
{

NOrdNo = "";


if(StrFind(response,"NOrdNo")) //Matches the orderstatus
{
NOrdNo = StrTrim( response, "{\"NOrdNo\":" );
NOrdNo = StrTrim( NOrdNo, "\",\"stat\":\"Ok\"}" );
}

return NOrdNo;
}

function getorderhistory(orderno)
{

algomojo=CreateObject("AMAMIBRIDGE.Main");
api_data = "{\"uid\":\""+uid+"\",\"NOrdNo\":\""+orderno+"\",\"s_prdt_ali\":\""+s_prdt_ali+"\"}";
resp=algomojo.AMDispatcher(user_apikey, api_secret,"OrderHistory",api_data,broker,ver);

return resp;


}


function getsymbol(orderno)
{

ordresp = getorderhistory(orderno);

data = "";
Trsym="";

for( item = 0; ( sym = StrExtract( ordresp, item,'{' )) != ""; item++ )
{

sym = StrTrim(sym," "); //Trim Whitespaces




if(StrFind(sym,"complete") OR StrFind(sym,"rejected")) //Matches the orderstatus
{

flag = 1; //turn on the flag

data = sym;

for( jitem = 0; ( ohistory = StrExtract( data, jitem,',' )) != ""; jitem++ )
{

if(Strfind(ohistory,"Trsym"))
  {
   Trsym = StrExtract(ohistory,1,':');
   Trsym = StrTrim(Trsym,"\"");
   
  }

}

}

}

return Trsym;

}

function getorderstatus(orderno)
{
orderstatus="";
ordresp = getorderhistory(orderno);

data = "";

for( item = 0; ( sym = StrExtract( ordresp, item,'{' )) != ""; item++ )
{

sym = StrTrim(sym," "); //Trim Whitespaces


if(StrFind(sym,"complete") OR StrFind(sym,"rejected")) //Matches the orderstatus
{

flag = 1; //turn on the flag

data = sym;

for( jitem = 0; ( ohistory = StrExtract( data, jitem,',' )) != ""; jitem++ )
{

if(Strfind(ohistory,"Status"))
  {
   orderstatus = StrExtract(ohistory,1,':');
   orderstatus = StrTrim(orderstatus,"\"");
   
  }

}

}

}

return orderstatus;
}//end function


function gettoken(symbol)
{
stoken="";
algomojo=CreateObject("AMAMIBRIDGE.Main");
api_data = "{\"s\":\""+symbol+"\"}";
resp=algomojo.AMDispatcher(user_apikey, api_secret,"fetchsymbol",api_data,broker,ver);

for( item = 0; ( sym = StrExtract( resp, item,'{' )) != ""; item++ )
{

sym = StrTrim(sym," "); //Trim Whitespaces

data = sym;

for( jitem = 0; ( ofetch = StrExtract( data, jitem,',' )) != ""; jitem++ )
{

if(Strfind(ofetch,"symbol_token"))
  {
   stoken = StrExtract(ofetch,1,':');
   stoken = StrTrim(stoken,"\"");
   
  }

}

}
return stoken;
}

function writetofile(filepath,ordno,symbol,ostatus,Ttranstype)
{
    result =0;
	if(ostatus=="complete" OR ostatus=="rejected")
	{
    fh = fopen( filepath, "w"); //Filepath of csv file with symbols
	if(fh)
    {
		
		fputs(ordno + ",", fh);
		fputs(symbol + ",", fh);
		fputs(ostatus+",", fh);
		fputs(Ttranstype+",", fh);
		fclose(fh);
		result =1;
    } 
    }
    
    return result; 
}


//placeoptionorder(1,spot,expiry,iInterval,btn12_qty,"B","CE",offset_btn12); 

function placeoptionorder(group,spot_sym,expiry_dt,strike_int,qty,Ttranstype,opt,off)
{

if(opt=="CE")
{
off = off; //sign remains the same
}

if(opt=="PE")
{
off = -off;  //reverse the sign
}





algomojo=CreateObject("AMAMIBRIDGE.Main");
api_data = "{\"strg_name\":\""+stgy_name+"\",\"spot_sym\":\""+spot_sym+"\",\"expiry_dt\":\""+expiry_dt+"\",\"opt_type\":\""+opt+"\",\"Ttranstype\":\""+Ttranstype+"\",\"prctyp\":\""+prctyp+"\",\"qty\":\""+qty+"\",\"Price\":\""+Price+"\",\"TrigPrice\":\""+TrigPrice+"\",\"Pcode\":\""+Pcode+"\",\"strike_int\":\""+strike_int+"\",\"offset\":\""+off+"\"}";
_TRACE(" API.  Data :"+api_data);
resp=algomojo.AMDispatcher(user_apikey, api_secret,"PlaceFOOptionsOrder",api_data,broker,ver);


if(OrderAlerts)
{
Say("入境订单 Placed");
}


//Get Nest Order Number
nestorderno = getnestorderno(resp);
_TRACE("\nNest Order No : "+nestorderno);

tradetime=GetPerformanceCounter()/1000; 

while ((GetPerformanceCounter()/1000 - tradetime) < timer)
{            

//Get Trading Symbol
Tsym = getsymbol(nestorderno);
}
_TRACE("\nTrading Symbol : "+Tsym);

//Get Order Status
orderstatus = getorderstatus(nestorderno);
_TRACE("\nOrder Status : "+orderstatus);
//Get Token Number
//token = gettoken(Tsym);
//_TRACE("\nSymbol Token : "+token);
if(opt=="CE")
{
path = fpath+group+"AlgomojoCE.csv";
}
if(opt=="PE")
{
path = fpath+group+"AlgomojoPE.csv";
}

writestatus = writetofile(path,nestorderno,Tsym,orderstatus,Ttranstype);
_TRACEF(WriteIf(writestatus,"\nWriting to File - Success","\nWriting to File - Failure"));
//resp = resp+"\nNest Order No : "+nestorderno+"\nTrading Symbol : "+Tsym+"\nOrder Status : "+orderstatus+"\nSymbol Token : "+token;
return Tsym;

}


function getquantity(Tsym)
{

algomojo=CreateObject("AMAMIBRIDGE.Main");
api_data ="{\"uid\":\""+uid+"\",\"actid\":\""+uid+"\",\"type\":\""+"NET"+"\",\"s_prdt_ali\":\""+s_prdt_ali+"\"}";
resp=algomojo.AMDispatcher(user_apikey, api_secret,"PositionBook",api_data,broker,ver);

//Initialization
flag = 0;
possym = "";
posNetqty =0;


for( item = 0; ( sym = StrExtract( resp, item,'{' )) != ""; item++ )
{

sym = StrTrim(sym," ");
Tsym = StrTrim(Tsym," ");

if(Strfind(sym,Tsym) AND StrFind(sym,Pcode)) //Matches the symbol and //Matches the Order Type
{

flag = 1; //turn on the flag

data = sym;

_TRACE(" Position Book  : " +data);

for( jitem = 0; ( posdetails = StrExtract( data, jitem,',' )) != ""; jitem++ )
{

  if(Strfind(posdetails,"Netqty"))
  {
   posdetails = StrExtract(posdetails,1,':');
   posNetqty = StrToNum(StrTrim(posdetails,"\""));
   _TRACE("\nNetQty : "+posNetqty);
  }
  

} //end of for loop
}

}//end of for loop

if(flag==0)
{
_TRACE("\nTrading Symbol Not Found");
}

return posNetqty;

}


function squareoffoptions(group,opt)
{

ordno = "";
Symbol = "";
ostatus ="";
Ttype = "";


	if(opt=="CE")
	{
	fpath = fpath+group+"AlgomojoCE.csv";
	}
	if(opt=="PE")
	{
	fpath = fpath+group+"AlgomojoPE.csv";
	}
	
	fh = fopen(fpath, "r"); 
	if(fh)
	{
		
		read = fgets(fh);
		ordno = StrTrim(StrExtract(read,0)," ");
		Symbol = StrTrim(StrExtract(read,1)," ");
		ostatus = StrTrim(StrExtract(read,2)," ");
		Ttype = StrTrim(StrExtract(read,3)," ");
					
		fclose(fh);
	}
	
	if(Ttype == "B")
	{
	TransType = "S";
	}
	
	if(Ttype == "S")
	{
	TransType = "B";
	}
	
	exitqty = getquantity(Symbol);
	_TRACE("Net Quantity in the OrderBook for the Symbol : "+Symbol+" is : "+exitqty);
	
	//if(ostatus=="complete" AND exitqty!=0)
	if(ostatus=="rejected")  //Enable only for testing purpose
	{
	
	
	
	algomojo=CreateObject("AMAMIBRIDGE.Main");
	api_data = "{\"strg_name\":\""+stgy_name+"\",\"s_prdt_ali\":\""+s_prdt_ali+"\",\"Tsym\":\""+Symbol+"\",\"exch\":\""+" nfo. "+"\",\"Ttranstype\":\""+TransType+"\",\"Ret\":\""+" 日 "+"\",\"prctyp\":\""+prctyp+"\",\"qty\":\""+exitqty+"\",\"discqty\":\""+"0"+"\",\"MktPro\":\""+"NA"+"\",\"Price\":\""+"0"+"\",\"TrigPrice\":\""+"0"+"\",\"Pcode\":\""+Pcode+"\",\" amo. \":\""+"NO"+"\"}";
	_TRACE(" API.  Data :"+api_data);
	resp=algomojo.AMDispatcher(user_apikey, api_secret,"PlaceOrder",api_data,broker,ver);
	
	if(OrderAlerts)
	{
	Say("退出订单 Placed");
	}

	
	//Get Nest Order Number
	nestorderno = getnestorderno(resp);
	_TRACE("\nNest Order No : "+nestorderno);

	tradetime=GetPerformanceCounter()/1000; 

	while ((GetPerformanceCounter()/1000 - tradetime) < timer)
	{            

	//Get Trading Symbol
	Tsym = getsymbol(nestorderno);
	}
	_TRACE("\nTrading Symbol : "+Tsym);

	//Get Order Status
	orderstatus = getorderstatus(nestorderno);
	_TRACE("\nOrder Status : "+orderstatus);
	
	}
	else
	{
	
	resp = "Not Squared Off. Prev Signal Status Not in Completed State";
	
	}
	
	return resp;
}
_SECTION_END();

现在拖放到新的空白图表交易的allomojo选项按钮。配置API键,API秘密密钥,代理名称,点,到期日,触摸间隔和按钮控件,偏移量和数量。

答对了!现在,按下按钮,您将能够自动下订单。

帖子 选项按钮交易ATM,ITM,OTM选项– Amibroker AFL Code首先出现了MarketCalls..

]]>
//www.a1gz9.icu/algomojo/option-button-trading-to-trade-atm-itm-otm-options.html/feed 0
在学习/交易市场简介之前了解10件事 //www.a1gz9.icu/market-profile/10-things-to-know-before-learning-trading-with-market-profile.html //www.a1gz9.icu/market-profile/10-things-to-know-before-learning-trading-with-market-profile.html#respond 星期四,06年5月2021年2月21:51:42 +0000 //www.a1gz9.icu/?p=55170 市场简介一个理解市场,市场情绪的伟大工具,帮助贸易商了解优势交易员,较弱的交易商比大多数技术交易者的技术工具更好。本教程探讨了交易员是否希望在其交易职业中启动市场概况的交易的情况下审议的一些基本事项。

帖子 在学习/交易市场简介之前了解10件事首先出现了MarketCalls..

]]>
市场简介一个理解市场,市场情绪的伟大工具,帮助贸易商了解优势交易员,较弱的交易商比大多数技术交易者的技术工具更好。本教程探讨了交易员是否希望在其交易职业中启动市场概况的交易的情况下审议的一些基本事项。

1)对于初学者和那些对市场简介的人来说非常新的人。市场概况更多是一个图形工具并且一个人必须在视觉上使用该工具来了解市场背景,后来必须将视觉信息手动解释进入交易环境和交易环境的交易策略。

2)交易者有三件事更为重要的是变得更加专业

i)管理交易期望
II)贸易管理
III)风险管理


市场简介有助于一个人更好地了解市场,如果交易环境正在改变,它也会带来更改交易者的灵活性’由于市场自身改变其方向,因此也是交易环境的视图。

3) 市场简介是一个决策支持工具这可以用来仅使用市场简档的独立交易决策,或者可以与指标组合以管理风险并管理交易期望。

4)市场概况可帮助交易者专注于有意义的交易见解,并帮助贸易商通过采用交易流程/交易框架,专注于客观性远离外部噪声+认知偏差。

5)学习市场简介带来了处理任何挑战性市场情况的独特能力(趋势,侧身,高挥发性,低挥发性,极其挥发性市场)。市场简介带来了更系统的思维和更好的交易习惯始终捕获边缘。

6)市场概况策略不能完全自动化。随着市场的变化,视觉规则每天也会变化。每天都是使用市场简介的人的新日。但是市场概况策略的某些部分可以自动化,市场概况培养贸易商以提高交易决策并帮助贸易商专注于最近的信息以及过去的信息。虽然过去的市场活动的信息很有帮助,但最近的信息持有比过去的信息更多的重量。

7)市场简介提供了更概念的思维。市场简介解释说明“什么,为什么,何时,在哪里,谁以及如何”价格行动。这样的方式市场简明解释了当前的市场环境,为短期交易者和短期交易者带来了更多相关信息。

学习市场简介带来想要培养养成在困难交易环境中采取更好的交易决策习惯的贸易商的概念性思考。

市场简介解释,

什么 正在市场上发生(经验)
为什么 应该发生特定的举动(推理)
什么时候 预期的举动可能会发生(时间)
在哪里 –价格可以移动的地方– (target)
WHO –谁在主导市场– (participants)
如何 –如何发生可能的价格行动– (scenario)

8)市场配置文件有助于交易构建/预期交易场景基于正在进行的交易情绪,视觉参考水平和正在进行的市场信心+价格行动设置。市场概况不仅仅是取得止损,并期待目标,而且更多的交易生活方式

9)使用市场概况学习自己的时间。但是,学习过程的结果是强大的。市场简介学习+持续努力+刻意的实践是一个成功的交易者。致力于持续学习+练习是为自己带来更好的交易者。

10)与市场生成的信息进行交易市场概况有助于贸易商减缓您的思维,避免情绪交易决策,基于实用的视觉方法偏离免费交易决策

快乐贸易!


帖子 在学习/交易市场简介之前了解10件事首先出现了MarketCalls..

]]>
//www.a1gz9.icu/market-profile/10-things-to-know-before-learning-trading-with-market-profile.html/feed 0