Это программа имеет встроенный язык, и этот язык есть C#
Вот пример
using System;
using System.Drawing;
using Broker.StrategyLanguage.Function.BuiltIn;
using Fx2GoCommon;
namespace Broker.StrategyLanguage.Indicator{
public class Test22 : BaseIndicator {
public Test22(object _ctx):base(_ctx){}
private IPlot plot1;
protected override void Construct() {
// TODO : create all members here
plot1 = AddPlot(new PlotInfo("", PlotType.Line, Color.Red));
}
protected override void Initialize() {
// TODO : assign inputs here
}
protected override void Execute(){
// TODO : implement indicator logic here
plot1.Set(Bars.Close[0]);
}
}
}
Но не имеет отладчика и возможность сохранить даже этот код в виде текста. Если кому вдруг интересно — посмотрите это тестер стратеий для бирж. От самого большого "брокера" FXCM.
Ну вот а мне надо типа отлаживать этот С# -вый код и ЕЩЕ прилинковать к нему библиотеку написанную на С++ , на нейтив.
Разработчики пока молчат как партизаны — но понятно ветта вышла вот только-только. А мне надо понять подходит мне именно эта программа или нет. У них есть еще много разных. Но на взгляд эта именно то что мне нужно, но только с отладкой и импортом.
Банальная вставка для проверки вот этого кода
[DllImport("coredll.dll", SetLastError = true)]
public static extern bool CloseHandle(IntPtr hObject);
Выдает ошибку —
Ожидался класс, делегат, перечисление, интерфейс или структура "Test22" [Indicator] Ln 7
Недопустимый для этого элемента модификатор "extern" "Test22" [Indicator] Ln 6
Подскажите кто знает.
Я думаю многим будет интересно , я знаю что многие балуются атоматизацией для торгов.
Re: Как можно импортировать в C# код на naitive С++
А>Ожидался класс, делегат, перечисление, интерфейс или структура "Test22" [Indicator] Ln 7
А>Недопустимый для этого элемента модификатор "extern" "Test22" [Indicator] Ln 6
А>Подскажите кто знает.
Объявление метода нужно добавлять "внутрь" класса. А где оно у вас? Почему не показано?
А>Я думаю многим будет интересно , я знаю что многие балуются атоматизацией для торгов.
К автоматизации торгов данный вопрос отношения не имеет никакого. Бросьте рекламой заниматься.
Help will always be given at Hogwarts to those who ask for it.
Re[2]: Как можно импортировать в C# код на naitive С++
От:
Аноним
Дата:
02.07.10 08:55
Оценка:
Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, Аноним, Вы писали:
А>>Банальная вставка для проверки вот этого кода _FR>
А>>Ожидался класс, делегат, перечисление, интерфейс или структура "Test22" [Indicator] Ln 7
А>>Недопустимый для этого элемента модификатор "extern" "Test22" [Indicator] Ln 6
А>>Подскажите кто знает.
_FR>Объявление метода нужно добавлять "внутрь" класса. А где оно у вас? Почему не показано?
Делал по разному.
И вот так тоже
using System;
using System.Drawing;
using Broker.StrategyLanguage.Function.BuiltIn;
using Fx2GoCommon;
namespace Broker.StrategyLanguage.Indicator{
public class Test22 : BaseIndicator {
[DllImport("coredll.dll", SetLastError = true)]
public static extern bool CloseHandle(IntPtr hObject);
public Test22(object _ctx):base(_ctx){}
private IPlot plot1;
protected override void Construct() {
// TODO : create all members here
plot1 = AddPlot(new PlotInfo("", PlotType.Line, Color.Red));
}
protected override void Initialize() {
// TODO : assign inputs here
}
protected override void Execute(){
// TODO : implement indicator logic here
plot1.Set(Bars.Close[0]);
}
}
}
выдает
Не удалось найти имя типа или пространства имен "DllImport" (пропущена директива using или ссылка на сборку?) "Test22" [Indicator] Ln 12
Я честно говоря уже C# подзабыл, подскажите, пожет все действительно банально.
А>>Я думаю многим будет интересно , я знаю что многие балуются атоматизацией для торгов.
_FR>К автоматизации торгов данный вопрос отношения не имеет никакого. Бросьте рекламой заниматься.
Нет, какая руклама, я действительно знаю что многие этим занимаются, и то что этот монстр FXCM выпустил такую ИНТЕРЕСНУЮ прогу, это на самом деле интересная новость. И даже более того я боюсь что если все начнут регистрировать и скачитвать эти бетту, прием мемтеров могут прекратить.
Да и у них на сайте этой ссылки просто так нет. Это действительно не раклама. И поверьте многим действительно эта новость будет интерсна.
Так что это скорее слив инфы, в тихую от FXCM чем реклама. Поверьте.
Так что это
Re: Как можно импортировать в C# код на naitive С++
Здравствуйте, Аноним, Вы писали:
_FR>>Объявление метода нужно добавлять "внутрь" класса. А где оно у вас? Почему не показано? А>Делал по разному. А>И вот так тоже А>выдает
А>Не удалось найти имя типа или пространства имен "DllImport" (пропущена директива using или ссылка на сборку?) "Test22" [Indicator] Ln 12
А>Я честно говоря уже C# подзабыл, подскажите, пожет все действительно банально.
Поищите в MSDN описание типа DllImportAttribute и добавьте using на пространстов имён, в котором DllImportAttribute объявлен.
Help will always be given at Hogwarts to those who ask for it.
Re[2]: Как можно импортировать в C# код на naitive С++
От:
Аноним
Дата:
02.07.10 09:28
Оценка:
Здравствуйте, a-belich, Вы писали:
AB>Здравствуйте, Аноним, Вы писали:
А>>Вопрос спицифический, пишу сразу. ИМХО не простой.
AB>using System.Runtime.InteropServices;
Дело в том что это тестер, а тестер это такая программа которая на иторических данных симулирует реальную торговлю как бы это было бы. Ну то есть отматывает время назад и торогая программа ( робот ) торгует на бирже ( или форексе ) как бы в прошлом. Таким образом можно отлаживать роботов и проверять стратегии торговли. Понято что этот процесс должен идти как можно быстрее, а иначе смысл симуляции пропадает, так как по сути получается почти как в рельном времени. Поэтому надо чтобы эти роботы работали быстро, и там достаточно большие обьемы данных ходят. Поэтому обмениваться данными через межпроцессное взаимодействие будет плохо.
Ну а вообще как они смогли такое сделать, компилятора как такого у них нет, радактор тоже похоже от C#. Что-то не верится что при такой схеме никак нельзя выкрутится.
Re[3]: Как можно импортировать в C# код на naitive С++
В этом namespace-е находится DllImport. Как вы представляете себе вызов unmanaged функций из managed "приложения" без такого взаимодействия?
Re[2]: Как можно импортировать в C# код на naitive С++
От:
Аноним
Дата:
02.07.10 09:33
Оценка:
Здравствуйте, a-belich, Вы писали:
А>>Вопрос спицифический, пишу сразу. ИМХО не простой.
AB>using System.Runtime.InteropServices;
Да, похоже это оно , а я протупил , думал что это Вы про межпроцесное ...
Re[4]: Как можно импортировать в C# код на naitive С++
От:
Аноним
Дата:
02.07.10 09:39
Оценка:
Здравствуйте, a-belich, Вы писали:
AB>Здравствуйте, Аноним, Вы писали:
AB>В этом namespace-е находится DllImport. Как вы представляете себе вызов unmanaged функций из managed "приложения" без такого взаимодействия?
Yes! Все работает!
Спасибо Вам и Fred'у
---
Отлично с этим разобрался, а как отлаживать? Что неужели никак к судии не прицепить?
Хотя если сделать внешнюю управляемую дллку, ... Ну буду думать. Спасибо.
--- Но вообще как их редактор заменить на студию? Как они вообще все это соорудили? Просто накидайте идей, я попробую дальше сам уже разобраться.
Re[5]: Как можно импортировать в C# код на naitive С++
Здравствуйте, Аноним, Вы писали:
А>Отлично с этим разобрался, а как отлаживать? Что неужели никак к судии не прицепить? А>Хотя если сделать внешнюю управляемую дллку, ... Ну буду думать. Спасибо.
Вариант раз: Написать в методе Debugger.Break(); — при выполнении попросят подключить отладчик.
Вариант два: из студии выбрать Debug\Attach to Process…
Help will always be given at Hogwarts to those who ask for it.
Re[6]: Как можно импортировать в C# код на naitive С++
Здравствуйте, _FRED_, Вы писали:
_FR>Вариант раз: Написать в методе Debugger.Break(); — при выполнении попросят подключить отладчик. _FR>Вариант два: из студии выбрать Debug\Attach to Process…
А это сработает совместно с run-time компиляцией скриптов?
Re[7]: Как можно импортировать в C# код на naitive С++
От:
Аноним
Дата:
02.07.10 10:21
Оценка:
Здравствуйте, a-belich, Вы писали:
AB>А это сработает совместно с run-time компиляцией скриптов?
Yes! Брейкуется.
***
А вот бы еще бы и редактор бы заменить. Ну или на крайняк я буду просто из проекта импортировать!
Еще раз спасибо!
Re[8]: Как можно импортировать в C# код на naitive С++
От:
Аноним
Дата:
02.07.10 10:33
Оценка:
Здравствуйте, Аноним, Вы писали:
AB>>А это сработает совместно с run-time компиляцией скриптов?
А>Yes! Брейкуется.
Брейковаться то брейкуется, но после уже программа не работает — зависает. И так что просто так ее не снять. Что делать?
Re[7]: Как можно импортировать в C# код на naitive С++
Здравствуйте, a-belich, Вы писали:
_FR>>Вариант раз: Написать в методе Debugger.Break(); — при выполнении попросят подключить отладчик. _FR>>Вариант два: из студии выбрать Debug\Attach to Process…
AB>А это сработает совместно с run-time компиляцией скриптов?
Что будет при компиляции неизвестно чем или при выполнении неизвестно кем мне сказать сложно.
Help will always be given at Hogwarts to those who ask for it.