Просмотр сообщений
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Messages - Олег
16
« on: Октября 14, 2013, 04:54:53 pm »
Ну вот сегодня снова печалька. До 14:45 все работало как надо, а потом ФОРТС остановился для клиринга, и вот до сих пор горит желтый кружочек. Сейчас уже 17:53. Что-то клиринг у них подзатянулся. Пробовал отключится и снова подключиться, не помогло. Впрочем, я и не ожидал, что это поможет, так на всякий случай попробовал.
17
« on: Октября 09, 2013, 03:06:38 pm »
Недавно начал изучать ATF, пробовал написать простые ТС. Начал тренироваться на демо-счёте. Написал скрипт, которые торгует по скользящим средним и параболику. Все работало отлично. Решил перейти на реальный счет и тут начались проблемы. На реальном счёте почему-то не работает торговля в шорт(транзак на это вообще никак не реагирует, не выдаёт никаких ошибок или предупреждений), а при покупке акций если указано купить 1 лот, то он покупает по 1 лоту до тех пор, пока не наберёт на всю сумму моего счета. На демо счете и на реальном счете транзак разных версий. Может ли быть проблема в этом? Вот сам скрипт:
#samewindow #line 0 dot maroon #line 1 solid red #line 2 solid green extern step = 0.02; extern init_step = 0.02; extern max_step = 0.20; var ac; var trend; var ep; var r=0; // переменная-флаг
function init() { setInitCandles(1); if (low < low[1]) { trend = 1; ep = high[0, 1]; line[0] = low; } else { trend = -1; ep = low[0, 1]; line[0] = high; } ac = init_step; } function calc() { //тут описывается параболик if (trend == 1) { if (high > ep) { ep = high; ac += step; if (ac > max_step) {ac = max_step;} } line[0] = line[0][-1] + ac * (ep - line[0][-1]); if (low < line[0]) { trend = -1; line[0] = ep; ep = low; ac = init_step; } } else { if (low < ep) { ep = low; ac += step; if (ac > max_step) {ac = max_step;} } line[0] = line[0][-1] + ac * (ep - line[0][-1]); if (high > line[0]) { trend = 1; line[0] = ep; ep = high; ac = init_step; } } // задаю свои скользящие средние line[1] = MovAvg(ind_ema, 13, pt_close); line[2] = MovAvg(ind_sma, 60, pt_close);
if(r==0) //я в кэше(нет открытых позиций) { if(line[1] > line[2] and line[1][-1]>line[2][-1] and trend==1) //красная скользящая выше зеленой скользящей и параболик под ценой { r=1; //изменяю значение флага trade_action::buy(1, ::lots); //лонг на 1 лот } if(line[1] < line[2] and line[1][-1]<line[2][-1] and trend==-1) //красная скользящая ниже зеленой скользящей и параболик над ценой { r=2; //изменяю значение флага trade_action::sell(1, ::lots); // шорт на 1 лот }
}
if(r==1)//открыт лонг { if(trend==-1) // параболик стал выше цены { r=0; //сбрасываю значение флага на 0 trade_action::sell(1, ::lots); //закрываю лонг } }
if(r==2)//открыт шорт { if(trend==1) // параболик стал ниже цены { r=0; //сбрасываю значение флага на 0 trade_action::buy(1, ::lots); //закрываю шорт } }
}
http://www.transaq.ru/forum/index.php?topic=1686.0
18
« on: Октября 03, 2013, 02:26:27 pm »
Сообщение "объявлена забастовка" у нас в системе не предусмотрено (на Бирже, скорее всего, тоже)
В логе каких-то особых проблем не видно: сервер, как обычно, запустился в 00:15 тестовая биржа Фортс заработала в 09:37:52 Первый пользователь подключился в 09:56:01
На самом деле, не могу сказать, что сервер совсем не работал. Кружочек ФОРТСа был зелененький, но котировки стояли на месте до 11:35. Ну а начиная с этого времени, прцесс пошел должным образом. Это по РТС и по Сбербанку. Остальных ликвидов мне там обнаружить не удалось, поэтому использую только вышеназванные.
19
« on: Октября 03, 2013, 09:27:33 am »
Ну вот... Последнее время неплохо работали почти каждый день, а сегодня снова забастовку объявили  А Интра при всем при том работает почти 24 часа в сути. Ну вот и ответ.
20
« on: Октября 01, 2013, 07:37:40 pm »
Если погонять вот такой скрипт: #samewindow #line 0 nodraw
function onNewCandle() { trade_action::cancelAllOrders(); }
function calc() { line[0] = 0; }
в начале каждой новой свечи будут сниматься заявки, которых в действительности не существует и при этом никаких сообщений выдаваться не будет. Почему же тогда в определенный момент работы "серьезных" сктиптов время от времени (хотя и достаточно редко) ATF выдает вот такое сообщение?  Какзалось бы ситуация одинаковая - пытаемся снять невыставленные заявки. Почему же тогда такая разная реакция?
21
« on: Сентября 30, 2013, 06:16:37 pm »
для ФОРТС usecredit значения не имеет
Спасибо! Вообще-то я так и думал, но на всякий случай уточнил.
22
« on: Сентября 30, 2013, 03:34:36 pm »
...и про тот пример (Не в обиду Олегу) про мувинги... Да мне и не обидно совсем  Я же просто из документации тупо скопировал и сюда кинул. Авторское право на тот грааль, на самом деле, принадлежит Хеллеру. Так что проценты с первого миллиона шлите ему
23
« on: Сентября 30, 2013, 01:54:21 pm »
Эти данные есть только для инструментов срочного рынка. Вы какой график открываете ?
Кстати, это классические "грабли"
24
« on: Сентября 30, 2013, 01:49:21 pm »
Если вы используете команду trade_action::buy/sell, то плечо будет использоваться в том случае, если у вас по умолчанию в настройках указано использовать кредит.
Если вы используете структуры и функцию trade_action::transact, то будет использоваться значение поля "usecredit".
На ФОРТС это тоже распространяется или там по этому поводу можно не париться?
25
« on: Сентября 30, 2013, 01:47:22 pm »
Скорее всего Вы правы... но!, вместо того что бы меня просто убеждать в "безприбыльности" моей идеи, не проще было бы ИЗМЕНИТЬ ПАРУ СТРОЧЕК в предложенном Вами скрипте, что бы я сам убедился в своей наивности... и за свой счет. А как мы знаем, свой кошелек-лучший учитель...
Эдак мы с вами кашу из топора сварим  А вдруг получится грааль?! Мне будет обидно
27
« on: Сентября 28, 2013, 01:25:29 am »
Насчет условия validbefore разобрались, это я сам же не разобрался в нашем же интерфейсе.
Ограние по времени действия бывает двух видов:
1) До какого дня заявка будет действительна - в диалоге это флажок "Снять после". Он может изменяться только в днях и работает только для FORTS. В ATF это поле вообще не доступно как оказалось.
2) Отдельно есть время действия условных заявок. Это как раз и есть validbefore - это поле актуально только в том случае, когда заявка выставлена с каким-либо условием.
Других вариантов нет.
А в документации и по сей день не исправлено:
28
« on: Сентября 27, 2013, 06:02:44 pm »
Здравствуйте !
1. Можно ли сразу вызывать с нужными параметрами
var StatLine = new_object( "statline" ); var OptPrice = StatLine.getparam( shortname, market, param_last );
или надо сначала подписываться, получать параметр и затем отписываться ?
var StatLine = new_object( "statline" ); StatLine.subscribe( OptionSecId ); // Подписаться на информацию по опциону. var OptPrice = StatLine.getparam( OptionSecId, param_last ); // Текущая цена. var TheoreticalPrice = StatLine.getparam( OptionSecId, param_theoreticalprice ); // Теоретическая цена. StatLine.unsubscribe( OptionSecId ); // Отписаться от информации по опциону.
2. Параметр shortname - это какое поле в структуре getSecInfo - isin или secname ? Например для фьючерса на индекс РТС там так isin = RIZ3 ; secname = RTS-12.13 ;
Какое значение надо брать для передачи в параметр shortname функции StatLine.getparam( shortname, market, param_last ) ? 3. Параметр market - это marketId ?
Heller, вот видите, как получается? Сейчас пятничный вечер. Наверняка, коллега рассчитывал заняться разработкой скрипта на выходных. Но он столкнулся с проблемой. И причем столкнулся с проблемой исключительно по той причине, что в документации эта тема, практически, не освещена. Будь это в документации, он бы просто прочитал это там и продолжил работу над своим проектом. Но в документации этого нет. Он задает свой вопрос здесь на форуме. А Вы появитесь здесь только в понедельник утром, когда он уже будет на работе и будет испытывать дефицит свободного времени. Следовательно, на выходных ему придется либо вообще не разрабатывать свой скрипт, либо искать ответы на сформулированные вопросы методом тыка. Это я к тому, что никакой форум никогда не заменит полноценной документации. Потому что здесь что-нибудь найти очень и очень сложно. А друг другу мы не отвечаем по той причине, что зачастую и сами не уверены в прочности своих знаний. Вот Вы бы хотя бы когда отвечаете здесь на вопросы, параллельно размещали те же самые ответы в документации, ну хотя бы в какой-нибудь отдельной статье "FAQ", сгруппировав все ответы по алфавиту или по смыслу, как это сделано (и кстати, очень хорошо сделано!) с функциями ATF. А иначе получается, что Вы снова и снова отвечаете на те же самые вопросы по многу раз, но не все же читают форум "от корки до корки", поэтому те же самые вопросы возникают и будут возникать снова и снова.
29
« on: Сентября 26, 2013, 01:06:06 pm »
Более подробно вроде нигде не освещена. А что именно вызывает вопросы?
Вызывает вопросы, практически, полное отсутствие в документации материалов на эту тему. А так же на тему, связанную с событием onKeyDown(). Но там хоть пример есть, хотя его не так-то легко найти, поскольку он свален в общую "кучу" вместе со множеством других примерных скриптов. Все разъяснения на форуме - это не в счет. Проходит время, ветки "тонут", и что-либо найти уже почти невозможно.
30
« on: Сентября 25, 2013, 09:30:04 pm »
...просто подумал что если "руками" получается ловить "пробои" мувингов, правда времени за компом провожу не так много... вот и натолкнулся на мысль...
Да просто это человеческая психология так устроена. Запоминиется одна крупная выигрышная сделка. А то что до этого и после этого было несколько проигрышных быстро забывается. Иллюзия, одним словом. Если подвести общий итог, да еще и комиссионные с проскальзываниями учесть, картина получится весьма мрачной.
|