Страница 3 из 3

Добавлено: Вс сен 09, 2007 3:12 pm
Terranin
VVV писал(а):
Terranin писал(а):Похоже бага, сравнивал по параметрам валюте и тамфрейму а имя забыл проверить. Исправил, выпущу обновление в ближайшие 2 дня. Эта бага проявляется только когда параметры 2х индикаторов полностью совпадают.
Спасибо, будем ждать :)
Выложил обновление. Можно скачивать.

Добавлено: Ср сен 10, 2008 6:30 am
Komanch
Доброго времени суток. Вот такой вопрос у меня - как получить доступ к последней по времени закрытой позиции, направление, прибыль и т. д? Как я понимаю, для этого есть фкнкция OrderSelect, флаг надо установить SELECT_BY_POS. А каким образом нумеруются ордера в списке? Т. е. какой номер имеет последняя по времени закрытая поза.

Добавлено: Ср сен 10, 2008 1:14 pm
Terranin
Komanch писал(а):Доброго времени суток. Вот такой вопрос у меня - как получить доступ к последней по времени закрытой позиции, направление, прибыль и т. д? Как я понимаю, для этого есть фкнкция OrderSelect, флаг надо установить SELECT_BY_POS. А каким образом нумеруются ордера в списке? Т. е. какой номер имеет последняя по времени закрытая поза.
Позиции нумеруются от 0 и до HistoryTotal - 1, последняя позиция и есть последняя закрытая. Выбирать нужно из журнала истории OrderSelect(SELECT_BY_POS, MODE_HISTORY, HistoryTotal - 1)

Добавлено: Чт сен 11, 2008 8:21 am
Komanch
ОК, сенкс. А посмотреть результат этой сделки функцией OrderProfit или OrderProfitPips. Т. е. эти функции для закрытых позиций тоже актуальны?

И ещё - непонятны мне слегка типы ордеров в TTradePositionType...
Чем отличается тип "tp_Buy" от "tp_BuyLimit" или "tp_BuyStop"? Просвети, плиз....

Добавлено: Чт сен 11, 2008 1:44 pm
Terranin
Komanch писал(а):ОК, сенкс. А посмотреть результат этой сделки функцией OrderProfit или OrderProfitPips. Т. е. эти функции для закрытых позиций тоже актуальны?

И ещё - непонятны мне слегка типы ордеров в TTradePositionType...
Чем отличается тип "tp_Buy" от "tp_BuyLimit" или "tp_BuyStop"? Просвети, плиз....
Функции актуальны, а с ордерами чего ж непонятного? tp_BuyLimit - отложенный ордер на покупку ниже цены, tp_BuyStop - отложенный ордер на покупку выше цены, tp_Buy - открытая позиция на покупку.

Добавлено: Пт сен 12, 2008 3:20 am
Komanch
Ну, вроде понял... Спасибо. Я просто торгую через Форекс Клуб, а у них такая терминология не используется, там попроще...

Добавлено: Пн май 10, 2010 6:15 pm
Hunter
Здравствуйте.
В Дельфи почему-то не работает функция Round()
То есть в таком виде она работает:
Round(2.55)
А вот в таком (с указанием, до какого знака округлять) не работает:
Round(2.55, 1)
Подскажите, пожалуйста, в чем можт быть дело?

Добавлено: Пн май 10, 2010 6:48 pm
Terranin
Hunter писал(а):Здравствуйте.
В Дельфи почему-то не работает функция Round()
То есть в таком виде она работает:
Round(2.55)
А вот в таком (с указанием, до какого знака округлять) не работает:
Round(2.55, 1)
Подскажите, пожалуйста, в чем можт быть дело?
Используйте RoundTo(2.55, -1);

Добавлено: Вс авг 08, 2010 4:58 pm
Hunter
Снова здравствуйте! Спасибо за обновление, замечательно!
Но непонятно вот что:
8. В интерфейсных файлах API для Delphi переменные типа string заменены на AnsiiString для совместимости с новой версией Delphi которая использует строки формата Unicode.

У меня прекрасно работают старые DLL с использованием string. Создаю новые, тоже со string, и тоже работает!
Какую функцию Вы мне рекомендуете использовать?

Добавлено: Вс авг 08, 2010 5:56 pm
Terranin
Hunter писал(а):Снова здравствуйте! Спасибо за обновление, замечательно!
Но непонятно вот что:
8. В интерфейсных файлах API для Delphi переменные типа string заменены на AnsiiString для совместимости с новой версией Delphi которая использует строки формата Unicode.

У меня прекрасно работают старые DLL с использованием string. Создаю новые, тоже со string, и тоже работает!
Какую функцию Вы мне рекомендуете использовать?
Это только для Delphi 2010 +, они перешли на строки Unicode где каждый символ задается 2мя байтами. Все предыдущие версии Delphi будут работать со старыми библиотеками. Поэтому пришлось прописать все строки как AnsiString для указания что там 1 байт на символ.

Добавлено: Сб ноя 27, 2010 11:36 pm
Hunter
Здравствуйте.
Программой пользуюсь давно, но только сейчас обнаружил:
если стратегия устанавливает отложенный ордер, но он не открывается, и стратегия его через некоторое время удаляет, то этот ордер не попадает в список ордеров MODE_HISTORY. Так и должно быть?

Добавлено: Вс ноя 28, 2010 12:22 am
Terranin
Hunter писал(а):Здравствуйте.
Программой пользуюсь давно, но только сейчас обнаружил:
если стратегия устанавливает отложенный ордер, но он не открывается, и стратегия его через некоторое время удаляет, то этот ордер не попадает в список ордеров MODE_HISTORY. Так и должно быть?
Да, так и есть. Когда писался этот блок подумалось а нафиг они нужны несработавшие в журнале, только засорять будут. И соответсвенно поиск в журнале будет занимать больше времени.

Добавлено: Ср мар 13, 2013 7:50 pm
Hunter
В справке по индикатору Bollinger Bands указано, как выставить его параметры для советника:
'35;2.00;0;Close' (Период, отклонение, шифт, цена)
-- а как указать, какой тип скользящей средней (простая, экспоненициальная и т.п.)?

Добавлено: Чт мар 14, 2013 4:58 pm
FT Support
Параметры для любого индикатора можно задать, посмотрев на них в "ручном режиме", параметры задаются в том же порядке и должны буква в букву соответствовать тому, что видно в окне свойств индикатора.

Добавлено: Вт мар 19, 2013 9:36 am
Hunter
FT Support писал(а):Параметры для любого индикатора можно задать, посмотрев на них в "ручном режиме", параметры задаются в том же порядке и должны буква в букву соответствовать тому, что видно в окне свойств индикатора.
Делаю так:
'35;2.00;0;Close;Simple (SMA)'
-- не помогает. То ли там скрытые пробелы есть?

Добавлено: Вт мар 19, 2013 4:25 pm
FT Support
Странно, должно работать. Возможно проблема в том, что в Вашей системе нужно использовать запятую как разделитель разрядов ("2,00" вместо "2.00").
Получается ли использовать другие индикаторы?

Добавлено: Вт мар 19, 2013 5:44 pm
Hunter
Боллинджер пишет 'illegal value' (в том поле, где вручную задается Simple (SMA)). Большой беды в этом нет, можно остановить стратегию в начале тестирования и вручную установить значение, а потом продолжить тест.
С другими индикаторами проблем не было, за исключением ЗигЗага - но это не Ваш ЗигЗаг, а самодельный. Работает хорошо, но при ручном тестировании если приостановить тест и отмотать назад - за последний экстремум ЗигЗага, то начинает работать неправильно. На всякий случай - вдруг Вам будет интересно - прикрепляю файл с кодом этого ЗигЗага.

Добавлено: Вт май 14, 2013 10:00 am
Hunter
При отладке советника нужно узнать, какое значение принимает переменная в определенный момент.
Как это сделать? Например, как записать в текстовый файл или вывести в виде сообщения?

Добавлено: Вт май 14, 2013 1:54 pm
Terranin
Hunter писал(а):При отладке советника нужно узнать, какое значение принимает переменная в определенный момент.
Как это сделать? Например, как записать в текстовый файл или вывести в виде сообщения?
Можно выводить сообщение функцией Print, она пишет в журнал его можно видеть во время работы программы и он сохраняется в файл. Можно писать напрямую в какой-нибудь файл самому. Можно использовать команду Breakpoint - ставит на паузу, выводит окно сообщения.

Добавлено: Пн ноя 25, 2013 7:00 am
Hunter
Подскажите, пожалуйста, почему в нижеприведенном коде не работает строка {1} (и, соответственно, не работает строка {2}).
Пришлось их закомментировать и заменить строкой {3}, но это не совсем то, что мне нужно.
Заранее спасибо!

// Пересчитывает баланс торговой системы после закрытия сделки
// Возвращает значение баланса
function GetCurrentBalanceTS(var LCOrder: integer; myDeposit: double; N: string): double;
var
k: integer;
infoorder: TTradePosition;
begin
result := myDeposit;
for k := LCOrder to HistoryTotal - 1 do
begin
if OrderSelect(k, SELECT_BY_POS, MODE_HISTORY) then
if (OrderComment = Commentar + Symbol + N) then
if k > LCOrder then
//{1} if GetOrderInfo(OrderTicket, infoorder) then
begin
LCOrder := k;
//{2} result := result + infoorder.profit + infoorder.swap + infoorder.commission;
{3} result := result + OrderProfit;

end;
end;
end;

Добавлено: Ср дек 25, 2013 5:19 pm
Hunter
Хм... Приходят сообщения на е-мейл, что в теме появился ответ; заглядываю - а ответа нет...