Из AFL вы можете создавать текстовый файл всякий раз, когда ваш код запускает сигнал. Например:
for(i = 0; i < BarCount; i++)
{
if(Buy[i])
{
//create text file code here using fputs
}
}
Что касается API, Amibroker предлагает два способа доступа к API. Первый — это COM-объект, упомянутый выше. Вы можете получить к нему доступ непосредственно в AFL, хотя это и не рекомендуется — документация AmiBroker COM . Используя COM напрямую, я не вижу, как вы можете экспортировать сгенерированные сигналы, похоже, нет функции, связанной с получением сигналов от AFL.
Второй — АДК. Вы можете написать плагин C++ (он будет находиться в папке плагинов Amibroker, и оттуда вы сможете вызывать методы C++ из своего кода AFL). Преимущество этого решения в том, что вы можете написать свой код AFL на C++ и оттуда отправлять сделки. Раньше я использовал ADK, это не очень сложно, но в конце концов я решил пойти другим путем.
Другим вариантом является доступ к COM-объектам из внешнего кода из языков, которые его поддерживают, путем передачи информации в DLL, как и решение ADK, за исключением того, что если вы не увлекаетесь C++, вы можете использовать любой язык, который вы выберете, который имеет COM поддерживать. Я использую этот вариант. В моем коде AFL у меня есть что-то похожее на следующее, где я вызываю dll C# и передаю ей соответствующие аргументы. Из моего кода C# я использую REST для отправки сделки в MetaTrader.
for(i = 0; i < BarCount; i++)
{
if(Buy[i])
{
SendTrade(args);
}
}
Я дал предыдущий ответ о том, как это сделать.
https://stackoverflow.com/a/37097609
Есть и другие решения, которые вы можете использовать, и они в значительной степени работают так же, как и третье решение, которое я дал. Я знаю, что люди создали подобные решения на разных языках, таких как Java, Python, Ruby и т. д. Для C# вы можете посмотреть заголовок DotNet для Amibroker. Он перенес ADK на C#. Это платно. Другой — AmiBroker .NET SDK. Он сделал то же самое, что и DotNet для AB — перенес ADK на C#, но его решение кажется более подходящим для подключаемых модулей данных. Я никогда не мог заставить его работать на меня.
person
Sethmo011
schedule
22.01.2018