Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Как одновременно в тестере вывести результаты 2-х символов? Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
dmitry1208197320



Зарегистрирован: 23.10.2009
Сообщения: 86

СообщениеДобавлено: Ср Дек 09, 2009 4:17 pm Ответить с цитатой Вернуться к началу

Может быть вопрос несовсем корректен, но если можно, подскажите, плиз, как в тестере вывести одновременно, например, открытие и закрытие длинных позиций для одного символа и открытие/закрытие коротких позиций для другого символа? У меня почему-то получается одновременно только для одного символа.
Посмотреть профиль Отправить личное сообщение Отправить e-mail
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Ср Дек 09, 2009 9:57 pm Ответить с цитатой Вернуться к началу

http://www.amisite.ru/begin/bk_test1.htm
Тут достаточно понятно написано.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
dmitry1208197320



Зарегистрирован: 23.10.2009
Сообщения: 86

СообщениеДобавлено: Чт Дек 10, 2009 12:04 pm Ответить с цитатой Вернуться к началу

Олег, прочитал ещё раз работу тестера, но всё равно непонятно.

У меня такая ситуация: надо открывать (по определённому условию) ОДНОВРЕМЕННО: длинную позицию для текущего символа и короткую позицию следующего за ним символа. Потом (тоже по определённому условию) ОДНОВРЕМЕННО закрывать открытые позиции.
Я делаю так:
1. Заполняю для текущего символа массивы buy и sell.
2. Переключаюсь с помощью функции SetForeign на другой символ.
3. Заполняю для этого символа массивы short и cover.
4. Пытаюсь посмотреть в окне тестера результаты (по кнопке Scan) ОДНОВРЕМЕННО для двух символов, а получается только для текущего.

Что я делаю неправильно?
Посмотреть профиль Отправить личное сообщение Отправить e-mail
dmitry1208197320



Зарегистрирован: 23.10.2009
Сообщения: 86

СообщениеДобавлено: Чт Дек 10, 2009 10:32 pm Ответить с цитатой Вернуться к началу

Олег, помогите, пожалуйста
Посмотреть профиль Отправить личное сообщение Отправить e-mail
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пт Дек 11, 2009 12:19 am Ответить с цитатой Вернуться к началу

Цитата:

2. Переключаюсь с помощью функции SetForeign на другой символ.

Вот тут ошибка. С помощтю функции SetForeign не происходит переключения на другой символ. Эта функция позволяет получить массивы OHLCVOi другого символа находяит в этом. (незнаю понятно ли написал) Smile
Поэтому сигналы на другой символ никак не попадают. Соответственно и тестер эти сделки не делает.

Я так понимаю суть системы анализ спреда между бумагами.
Соответственно анализируя для поиска условий сделки каждую из этих бумаг требуются данные с другой бумаги. Ну вот и надо написать систему которая несмотря на то на какой она в данный момент из этих двух бумаг генерирует сигналы сделок. Только если текущая бумага AAA то Buy, а если BBB то Sell.
Далее. Не понятно для чего нужен код.
Если для теста на истории, то можно поступить гораздо проще.
При помощи функции AddToComposite создать тикер в котором прописать сигналы Buy Sell ... например в Close этого тикера забить 0 1 2 соответственно сделка / закрытие сделки.
И потом написать код тестера который будет смотреть этот тикер и в зависимости от того какой сейчас символ и что в этом тикере писать Buy Sell Short Cover
Если на истории все проверено и надо чисто робота, то не так уж трудно переделать код робота чтобы он писал в tri одновременно 2 строки на покупку одно и продажу другого основываясь на анализе только одно тикера из пары...


Вот такие пироги. Надеюсь прояснил ситуацию.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
dmitry1208197320



Зарегистрирован: 23.10.2009
Сообщения: 86

СообщениеДобавлено: Пт Дек 11, 2009 11:27 am Ответить с цитатой Вернуться к началу

спасибо, Олег, вроде всё понял, буду пробовать
Посмотреть профиль Отправить личное сообщение Отправить e-mail
nemoy



Зарегистрирован: 05.10.2014
Сообщения: 29

СообщениеДобавлено: Пн Дек 08, 2014 11:26 am Ответить с цитатой Вернуться к началу

есть вот такая честно стащеная формула, для сборки суммы тикера из двух
Код:

procedure Composite_Basket (Basket_Name, Weight)
{
 AddToComposite(Weight*O, Basket_Name, "O", atcFlagDeleteValues );
 AddToComposite(Weight*H, Basket_Name, "H", atcFlagDeleteValues );
 AddToComposite(Weight*L, Basket_Name, "L", atcFlagDeleteValues );
 AddToComposite(Weight*C, Basket_Name, "C", atcFlagDeleteValues );
}

_SECTION_BEGIN( "Basket_sber-sberp" );

Filter = C > 0;

Basket_Name = "Basket_sber-vtbr";
MarketID_Currency = 5;

switch ( Name() )
{
 case "SBER": Weight = 100; break;
 case "vtbr": Weight = 100000; break;
 default: Weight = 0; break;
}

if (Weight > 0) Composite_Basket (Basket_Name, Weight);
CategoryAddSymbol(Basket_Name, categoryMarket, MarketID_Currency);


сумму счетает нормально, а стоит только поставить минус перед коэффициентом второго тикера и итоговый тикер счетается без второго тикера
что здесь изменить чтобы получить тикер спреда
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Дек 08, 2014 1:40 pm Ответить с цитатой Вернуться к началу

Мне ща проверять не досуг.
Может дело в этом?
if (Weight > 0)
Попробуй сделать так
if (Weight != 0)

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
nemoy



Зарегистрирован: 05.10.2014
Сообщения: 29

СообщениеДобавлено: Пн Дек 08, 2014 8:12 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Мне ща проверять не досуг.
Может дело в этом?
if (Weight > 0)
Попробуй сделать так
if (Weight != 0)

мда. и как сам не заметил это грёбаное условие. благодарю Very Happy
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen