如何在我的网页上显示Amibroker的买入/卖出信号?

时间:2016-07-02 06:56:38

标签: algorithmic-trading metatrader4 amibroker

我想显示Amibroker在我的网站上生成的买入/卖出信号。我尝试了很多东西,但我找不到解决方案。

如果我可以将图表流式传输到网站上会更好。

问题是,我不知道如何访问Amibroker的API。(他们甚至有它吗?在功能页面中提到它,但没有看到任何关于它的文档)。

然后,我不确定如何将其连接到我的网络服务器。

2 个答案:

答案 0 :(得分:1)

第0步:首先获得 AmiBroker 域名知识

这是一个观点,你可以自己做,投入自己的时间,流汗,或者你可以通过聘请领域专家立即外包核心知识。

enter image description here

如果您选择前者,请从文档开始。软件架构及其相关工具都在那里得到很好的描述。

enter image description here

第1步:定义项目目标

同样,不能跳过此步骤。正如您所料,可以草拟,润色和维护自己的项目定义,或者外包项目管理可用于此类 {PM|QA|CM} - 专业的组合。

第2步:以确定的(1)

中定义的功能单位开始

这里有一个简单的出口商单位代码:

var oAB     = new ActiveXObject( "Broker.Application" );
var fso     = new ActiveXObject( "Scripting.FileSystemObject" );

    Ticker  = oAB.ActiveDocument.Name;
    file    = fso.OpenTextFile( Ticker + ".csv", 2, true );

var oStocks = oAB.Stocks;
    oStock  = oStocks( Ticker );

var Qty     = oStock.Quotations.Count;

for( i = 0; i < Qty; i++ )
{
     oQuote = oStock.Quotations( i );

  var oDate = new Date( oQuote.Date );

  file.WriteLine( oStock.Ticker       + "," + 
                  oDate.getFullYear() + "-" +
                  oDate.getMonth()+1  + "-" +
                  oDate.getDate()     + "," + 
                  oQuote.Close        + "," + 
                  oQuote.Open         + "," +
                  oQuote.High         + "," +
                  oQuote.Low          + "," + 
                  oQuote.Volume
                  );
}
file.Close();
oAB.Quit();

第3步:继续行走,直至完成&amp;整合设定的目标

这很容易,一旦你们都知道什么&amp;诀窍。

答案 1 :(得分:1)

从AFL,您可以在代码触发信号时创建文本文件。例如:

for(i = 0; i < BarCount; i++)
{
   if(Buy[i])
   {
     //create text file code here using fputs
   }
}

关于API,Amibroker提供了两种访问API的方法。第一个是上面提到的COM对象。您可以直接在AFL中访问它,但不建议使用AmiBroker COM documentation。直接使用COM,我看不出如何导出生成的信号,似乎没有与从AFL获取信号相关的功能。

第二个是ADK。你可以编写一个C ++插件(它将进入Amibroker插件文件夹,你可以从那里调用你的AFL代码中的C ++方法)。这个解决方案的优点是你可以用C ++编写你的AFL代码,并从那里发送交易。我之前使用过ADK,它并不是非常困难,但最后,我决定走另一条路。

另一种选择是通过将信息传递给DLL来从支持它的语言访问外部代码的COM对象,与ADK解决方案相同,除非你不热衷于C ++,你可以使用你选择的任何语言有COM支持。我用这个选项。在我的AFL代码中,我有类似于以下的内容,我将其称为C#dll并将相关的句子传递给它。从我的C#代码中,我使用REST将交易发送到MetaTrader。

for(i = 0; i < BarCount; i++)
{
   if(Buy[i])
   {
     SendTrade(args);
   }
}

我之前已就如何做到这一点给出了答案。

https://stackoverflow.com/a/37097609

您可以使用其他解决方案,其工作方式与我提供的第三种解决方案相同。我知道人们已经用不同的语言创建了类似的解决方案,例如Java,Python,Ruby等。对于C#,你可以看看DotNet for Amibroker。他将ADK移植到C#中。这是有偿的。另一个是AmiBroker .NET SDK。他做了与DotNet for AB相同的事情 - 将ADK移植到C#,但他的解决方案似乎更适合数据插件。我永远无法让它为我工作。