Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
10.02.2025, 20:11:44
Начало Помощь Поиск Войти Регистрация
Новости: ООО «Скрин маркет системз», правообладатель программы «Система брокерского обслуживания «TRANSAQ» официально заявляет, что не ведет никакой деятельности в мессенджерах или социальных сетях. 
Подробности на нашем сайте  WWW.TRANSAQ.RU.

Просмотр сообщений

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 - alexejshevchenko

Pages: 1 2 [3] 4 5
31
Code: [Select]
#samewindow
#line 0 solid blue
//------------------------------------------------------------------------------------
static m; 
static stz; 
static pr;
static op;
var x;
var y;
//------------------------------------------------------------------------------------
function init() {
 x = new_object("hash");
 y = new_object("hash");
}
//------------------------------------------------------------------------------------
function onOrder(var id) {
 x = getOrder(id);
 stz = x["status"];  // Запоминаем статус заявки
}
function onTrade(var id) {
 y = getTrade(id);
 op = y["operation"]; // Запоминаем направление сделки
 pr = y["price"];  // Запоминаем цену сделки
}
//------------------------------------------------------------------------------------
function calc() {
if (m == 0) {trade_action::sell(1, ::lots); }
if (op == -1) {m = 1;} // где op = y["operation"]; переменная из хэша, что сделка на продажу прошла
 line[0] = MovAvg(ind_ema, 5, pt_close);
}

Когда скрипт запускаю в окне графика, происходит продажа 1 лота и все, дальше сделок нет. Так было и задумано.


Если запускаю этот скрипт в тестере стратегий на исторических данных он мне рисует вот такую картину


Ответ: На протяжении всей работы скрипта m=0;  соответственно до второй скобки компилятор даже не добирается (чтобы сделать m = 1), если бы в первых скобках стояла мультиплай версия продажи - то он бы шмалял продажи по каждому тику.
Так как там не мультиплай - делает продажу на каждую свечку по одному разу.

В целом условие которое вы ждете if (op == -1)  где op = y["operation"];   может и наступать,...но не сработает во-первых из вышеизложенного, и во-вторых - в переменную же сохраняется стринг в виде константы   "OP_SELL" - а не число, равное -1

Поэтому самое целесообразное, для такого минутного торга,   сделать так :

function calc() {

if (op == "OP_SELL") {m = 1;}

if (m == 0) {trade_action::sell(1, ::lots); }
 
 line[0] = MovAvg(ind_ema, 5, pt_close);
}



Не соглашусь.
Константу не надо заключать в кавычки. И если сравнить значение с -1, то тоже будет работать.
Переменная m статическая глобальная. Так что при первой сделке m будет равно 1.
Всё дело в том, что надо использовать onATFOrder и onATFTrade

32
Какой логин для коннектора? пробовал от транзака - пишет <server_status connected="error">Неверный идентификатор, пароль или Touch Memory</server_status>
на транзаке с такими же параметрами заходит.

33
Читал на форуме, что в тетере некорректно работают стоп заявки.
Сейчас столкнулся, что функция getActiveStopOrderIDs() не возвращает активные стоп заявки. После работы тестера можно посмотреть заявки - стопы выставляются.

34
Просто показывает выполняется условие вверх или вниз. Если MovAvg больше предыдущего значения и MACD больше предыдущего (т.е. линии направленны вверх), то на гистограмме палка вверх, т.е. =1. Так же и наоборот

35
К сожадению, в транзаке пока таких возмостей нет.

36
А почему он отображается некорректно?
Судя по коду - это гистограмма в отдельном окне со значениями от -1 до 1.
Так он и выводится.

37
Нашёл небольшой баг при выставлении стоп заявки. Стоп выставляется с использованием кредита.
stop["sl_usecredit"] =  true;

Если использовать подтверждение
stop["confirm_dialog"]=true;

то окошко заявки будет полностью заполнено из хэша, который передали, но галочки на "использовать кредит" не стоит.
Без подтверждения стоп выставляется правильно, с использованием кредита.

38
OS_WATCHING это константа, означающая что заявка ожидает условия, т.е. это активная условная заявка.
значение 11 - это OS_MATCHED, т.е. заявка исполнена.

39
та я тоже за общение на "ты" ))

в переменных idO и idS у тебя id заявок. Получаешь структуру getOrder(id) и оттуда берёшь номер заявки ))

40
я так сделал:

                var ins=getSecInfo();
      var ids = getAllOrderIDs();
      var z_id;

      while(ids.size()>0){
         z_id=ids.shift();
         var z=getOrder(z_id);
         if(z["secid"]!=ins["secid"]){continue;}
         if(z["status"]==OS_WATCHING){

            ПОЛУЧИЛИ УСЛОВНУЮ ЗАЯВКУ z_id

         }
      }

41
На самом деле меня интересует только событие закрытия окна (т.е. без выставления заявки). В таком случае onOrder не вызывается.
Очень жаль. Буду что-то придумывать...

42
Здравствуйте.

Можно ли узнать результат закрытия окна ввода заявки? Т.е. при вводе заявки ставлю флаг confirm_dialog=true. Всплывает окно ввода заявки. Можно ли узнать как закрылось окно? Кнопкой OK, CANCEL, выставилась заявка, или нет?

43
Спасибо. Я сегодня утром уже сделал ))

44
Подсистема ATF / Re: Смерть АТФ ?
« on: 06.02.2014, 20:16:47 »
Мне кажется дело не в том, что язык умирает, а в том, что мало кто програмирует на atf. Ни для кого не секрет, что это новый язык и поэтому ограничен функционалом. Хотя с обновлениями выходит множество новых функций и жить становится легче )) в этом и причина что в Финаме Вам не смогли найти человека.
Насчёт долгого ответа разработчиков не согласен.

45
Я понял почему данный пример не работает. Переменная flag приняла значение true на 1 баре из истории.
Сейчас не могу привести отрывок кода, который у меня не работает. Смысл заключается в том, что когда робот выставляет заявку и выводит окно с подтверждением, он это делает на каждом тике, т.е всплывает сразу много окон. Вот я и хотел поставить флаг(окно активно) и после выставления заявки снять его. Кратная функция (без multiple) не подходит, т.к. на 1 свече может быть несколько заявок.

Pages: 1 2 [3] 4 5


Войти

Powered by MySQL Powered by PHP Powered by SMF 2.0.10 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!