Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Января 18, 2021, 03:38:08 am
Начало Помощь Поиск Войти Регистрация
Новости:

Transaq  |  СБО "Transaq"  |  Торговый терминал Transaq  |  Topic: Стоп-лосс, связанный с условной заявкой « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: Стоп-лосс, связанный с условной заявкой  (Прочитано 3479 раз)
Kukush
Jr. Member
**
Сообщений: 76


Просмотр профиля Email
« : Марта 12, 2017, 09:46:18 pm »

Уважаемые разработчики!

Очень нужен стоп-лосс, связанный с условной заявкой.

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

Это неудобно. Как было бы хорошо, выставляя условные заявки, сразу выставить стопы и заниматься своим делами! Это сэкономило бы трейдеру много времени и сил. И вообще поменяло бы режим дня и, так сказать, логику труда трейдера.

Пожалуйста, прислушайтесь к просьбе!
« Последнее редактирование: Марта 12, 2017, 09:49:34 pm от Kukush » Записан
andreyvv
Jr. Member
**
Сообщений: 87


Просмотр профиля Email
« Ответ #1 : Марта 22, 2017, 02:31:58 pm »

Простите, а что мешает выставить стоп-лосс одновременно с условной заявкой?
Записан
Kukush
Jr. Member
**
Сообщений: 76


Просмотр профиля Email
« Ответ #2 : Марта 23, 2017, 07:14:21 pm »

Если сейчас цена 100, а я хочу выставить условную заявку на покупку по 105 и стоп-лосс на 102, то стоп-заявка исполнится сразу же, то есть продастся тут же по 100 (потому что условная заявка, которой является стоп-лосс, исполняется всегда по текущей рыночной цене, если эта цена лучше заявки). Это при том, что позиции у меня нет.

А мне нужно, чтобы она исполнилась только если цена дойдёт до 105 и у меня будет позиция.
« Последнее редактирование: Марта 24, 2017, 10:22:40 am от Kukush » Записан
andreyvv
Jr. Member
**
Сообщений: 87


Просмотр профиля Email
« Ответ #3 : Апреля 08, 2017, 04:20:55 pm »

Вот очень простой код, работающий на пробой уровней поддержки и сопротивления. Все данные (уровни, количество лотов, цены заявок и стопов) вводятся вручную в свойствах индикатора. В данном варианте позиция открывается когда open новой свечи будет выше сопротивления или ниже поддержки (пробой). Одновременно с условной заявкой выставляется стоп и тейк. Есть проверка времени (можно запретить торговлю до или после определённого времени). Добавить робота очень просто Transaq - Графики - Скрипты ATF - Добавить. Копируете код в большое окно, в маленьких дайте название и ID. На график добавляете новый индикатор. Слева внизу увидите робота (робот зелёный - торговля включена, красный -  выключена). Он рисует выбранные вами линии поддержки и сопротивления и скользящую по Open свечи. Проверял только на истории, на реальном счёте погоняйте одним лотом, чтобы проверить. Изменить параметры - уровни и стопы очень просто. На графикё щёлкаете индикатор, далее свойства и меняете переменные. Сидеть и ждать пробития уровня не надо :-).

Собственно, код:

#samewindow
#line 0 solid red // Скользящая средняя
#line 1 dashed green // Поддержка
#line 2 dashed red // Сопротивление

extern lot = 2; // Размер начального лота
extern supp_level = 110000; // Уровень поддержки
extern res_level = 115000; // Уровень сопротивления
extern order_supp = 110000; // Цена лимитной заявки при пересечении поддержки
extern order_res = 115000; // Цена лимитной завки при пересечении сопротивления
extern stop_supp = 110500; // Уровень стопа при пробитии поддержки
extern stop_res = 114500; // Уровень стопа при пробитии сопротивления
extern take_supp = 108500; // Уровень тейка при пробитии поддержки
extern take_res = 116500; // Уровень тейка при пробитии сопротивления
extern sig_per = 3; // Период сглаживания трендовой скользящей
extern time_start = 10; // Час начала разрешенной торговли
extern time_stop = 21; // Час окончания разрешенной торговли

static NewCandle; // Переменная новой свечи
static dealer_SecInfo; //Переменная счёта клиента
static ServerHour; //Переменная часа сервера

function init()
{
    NewCandle = false; // Присваиваем переменной новой свечи значение False
    dealer_SecInfo = getSecInfo();//Получаем идентификатор бумаги
   
}

function onNewCandle()
{   
    NewCandle = true;
}

 
function calc()
{

ServerHour = getHour(getServerTime()); //Получаем время свечи

line[0] = MovAvg(ind_ema, sig_per, pt_open); // Скользящая средняя по цене открытия
line[1] = supp_level; // Поддержка
line[2] = res_level; // Сопротивление

//Открываем позицию по тренду на новой свече

if (NewCandle) {


// В лонг при пробитии сопротивления

if (open > res_level) && (ServerHour < time_stop) && (ServerHour > time_start)  {

     trade_action::cancelAllOrders(); //Отменить все заявки
     trade_action::cancelStopOrder("take_1"); //Отменить первый тейк-профит
     trade_action::cancelStopOrder("stop_1"); // Отменить первый стоп
     
     var trade_1 = new_object("hash");
     trade_1["quantity"] = lot; // Количество лотов
     trade_1["operation"] = OP_BUY; // Направление сделки
     trade_1["condition"] = COND_LAST_DOWN; // Сделка не выше
     trade_1["condvalue"] = res_level; // Цена активации условной заявки
     trade_1["price"] = order_res; // Лимитная цена ордера
     trade_1["usecredit"] =  false; // Не использовать кредит
     trade_1["secid"] = dealer_SecInfo["secid"];
     trade_action::transact(trade_1); // Выставляем на биржу

     var take_1 = new_object("hash"); // Выставляем тейк-профит_1
     take_1["operation"] = OP_SELL; // Заявка на продажу
     take_1["tp_activationprice"] = take_res; //Цена активации тейка
     take_1["tp_quantity"] = "100%"; //Закрыть всю позицию
     take_1["tp_correction"] = "0.1%"; // Величина коррекции в процентах
     take_1["validbefore"] = TILL_CANCELED; //Тейк-профит действует до отмены
     take_1["secid"] = dealer_SecInfo["secid"];
     trade_action::transact(take_1); // Выставляем на биржу

     var stop_1 = new_object("hash");//Выставляем стоп_1
     stop_1["operation"] = OP_SELL; // Закрытие лонга по стопу
     stop_1["sl_activationprice"] = stop_res; // Уровень активации стопа
     stop_1["sl_guardtime"] = 1; //Защитное время в секундах
     stop_1["sl_quantity"] = "100%"; // Закрыть позицию полностью
     stop_1["sl_validbefore"] = TILL_CANCELED; //Стоп до отмены
     stop_1["secid"] = dealer_SecInfo["secid"];
     trade_action::transact(stop_1);} // Выставляем на биржу

// В шорт при пробитии поддержки

if (open < supp_level) && (ServerHour < time_stop) && (ServerHour > time_start)  {

   trade_action::cancelAllOrders(); //Отменить все заявки
   trade_action::cancelStopOrder("take_1"); //Отменить первый тейк-профит
   trade_action::cancelStopOrder("stop_1"); // Отменить первый стоп
   
   var trade_1 = new_object("hash");
   trade_1["quantity"] = lot; // Количество лотов
   trade_1["operation"] = OP_SELL; // Направление сделки
   trade_1["condition"] = COND_LAST_UP; // Сделка не ниже
   trade_1["condvalue"] = supp_level; // Цена активации условной заявки   
   trade_1["price"] = order_supp; // Лимитная цена ордера
   trade_1["usecredit"] =  false; // На ФОРТС этот параметр должен быть false, на фондовом true 
   trade_1["secid"] = dealer_SecInfo["secid"];   
   trade_action::transact(trade_1); // Выставляем на биржу

   var take_1 = new_object("hash"); //Выставляем тейк-профит_1
   take_1["operation"] = OP_BUY; // Заявка на покупку
   take_1["tp_activationprice"] = take_supp; //Цена активации
   take_1["tp_quantity"] = "100%"; // Закрыть всю позицию
   take_1["tp_correction"] = "0.1%"; // Величина коррекции в процентах
   take_1["validbefore"] = TILL_CANCELED; //Тейк-профит действует до отмены
   take_1["secid"] = dealer_SecInfo["secid"];
   trade_action::transact(take_1); // Выставляем на биржу

   var stop_1 = new_object("hash");//Выставляем стоп_1
   stop_1["operation"] = OP_BUY; // Закрытие шорта по стопу
   stop_1["sl_activationprice"] = stop_supp; // Цена активации стопа
   stop_1["sl_guardtime"] = 1; //Защитное время в секундах
   stop_1["sl_quantity"] = "100%"; // Закрыть позицию полностью
   stop_1["sl_validbefore"] = TILL_CANCELED; //Стоп до отмены
   stop_1["secid"] = dealer_SecInfo["secid"];
   trade_action::transact(stop_1);} // Выставляем на биржу

NewCandle = false;

}


}



Записан
Kukush
Jr. Member
**
Сообщений: 76


Просмотр профиля Email
« Ответ #4 : Апреля 08, 2017, 07:23:34 pm »

andreyvv, благодарю. Может, кому-то пригодится. Я гуманитарий.
Записан
Kukush
Jr. Member
**
Сообщений: 76


Просмотр профиля Email
« Ответ #5 : Апреля 09, 2017, 06:21:47 pm »

Если это так несложно, то удивительно, что разработчики Транзака до сих пор это не реализовали. Давно и безуспешно все просят их об этом.
Записан
andreyvv
Jr. Member
**
Сообщений: 87


Просмотр профиля Email
« Ответ #6 : Апреля 10, 2017, 01:37:38 pm »

В том то и дело, что несложно реализовать с использованием кода на ATF. Однако, допускаю, что долго, дорого и неэффективно (работает - не трожь :-) переписывать код самого Транзака для введения функционала связанной заявки. Приоритет возможно состоит в обеспечении бесперебойного функционирования уже существующего функционала. Как-бы, если решение реализуется кодом на ATF, написанном на коленке за 10 минут, возможно и нет особого смысла городить огород с переписыванием и тестированием основного кода. Пытливый ум найдёт как реализовать связанный стоп (хотя бы мануалы по ATF прочтёт), ну а не пытливому, наверное, на бирже делать-то и нечего.
Записан
Kukush
Jr. Member
**
Сообщений: 76


Просмотр профиля Email
« Ответ #7 : Апреля 10, 2017, 02:08:22 pm »

andreyvv, можно водить автомобиль как ас и при этом не уметь перебрать движок. Так же и в трейдинге - можно торговать прибыльно и не иметь представления, что такое ATF, программирование и прочие коды. По-другому мозг устроен.

А разработчики просто обязаны улучшать платформу для торговли, ибо конкуренты не дремлют. Я пока не пользовался другими платформами и не могу сравнивать, но, судя по отзывам на трейдерских форумах, другие платформы удобнее Транзака, и единственное, за что все хвалят Транзак - окно заявок. Не хватает только связанного стопа.

Разработчики, сделайте связанный стоп!
Записан
andreyvv
Jr. Member
**
Сообщений: 87


Просмотр профиля Email
« Ответ #8 : Апреля 10, 2017, 02:44:37 pm »

Ну не знаю. Мне Транзак нравится. Вот Квик выбесил конкретно, в данный момент Квиком вообще не пользуюсь. Лично у меня к нему вопросов намного больше, чем к Транзаку. В общем, думаю, разработчики фиксируют голоса страждущих и первым делом вносят критические обновления для стабильной работы и те, по которым поступает больше всего просьб от широких масс. Наверное, когда-нибудь и до связанного стопа дойдёт :-).
Записан
klimov
Разработчики
Hero Member
*****
Сообщений: 783


Просмотр профиля Email
« Ответ #9 : Апреля 11, 2017, 10:28:02 am »

Действительно,  есть некоторые технические сложности с реализацией этой задачи на уровне серверов Транзак.
Сейчас задача в плане, но, увы, не с самым большим приоритетом.
Записан
Страниц: [1] Печать 
Transaq  |  СБО "Transaq"  |  Торговый терминал Transaq  |  Topic: Стоп-лосс, связанный с условной заявкой « предыдущая тема следующая тема »
Перейти в:  


Войти

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