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

Transaq  |  СБО "Transaq"  |  Торговый терминал Transaq  |  Topic: Стоп-лосс « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: Стоп-лосс  (Прочитано 3649 раз)
Soldier
Newbie
*
Сообщений: 2


Просмотр профиля Email
« : Января 24, 2016, 07:46:18 am »

Добрый день! Уважаемые разработчики, подскажите пожалуйста, возможно ли в "Transaq" выставление автоматических заявок стоп-лосс.
Записан
klimov
Разработчики
Hero Member
*****
Сообщений: 783


Просмотр профиля Email
« Ответ #1 : Января 25, 2016, 11:36:33 am »

Здравствуйте.
Поясните пожалуйста, что вы понимаете под "автоматическими" стоп-лоссами ?
Записан
Soldier
Newbie
*
Сообщений: 2


Просмотр профиля Email
« Ответ #2 : Января 25, 2016, 01:04:40 pm »

Добрый день!  Я имею ввиду,что если я вхожу в позицию, рыночной либо лимитной заявкой,одновременно при исполнении этих заявок выставлялся стоп-лосс, предварительно настроенный на величину риска, в пунктах, либо в процентах от позиции. Заранее благодарю за ответ.
Записан
klimov
Разработчики
Hero Member
*****
Сообщений: 783


Просмотр профиля Email
« Ответ #3 : Января 25, 2016, 01:40:41 pm »

Нет, такой  встроенной функции нет в терминале
Записан
GerberMof
Newbie
*
Сообщений: 2


Просмотр профиля Email
« Ответ #4 : Марта 14, 2016, 09:25:15 pm »

А исходя из чего определять на каком уровне устанавливать стоп лосс?
Записан
micstura
Full Member
***
Сообщений: 104


Просмотр профиля Email
« Ответ #5 : Июня 11, 2016, 02:50:50 am »

Добрый день! Уважаемые разработчики, подскажите пожалуйста, возможно ли в "Transaq" выставление автоматических заявок стоп-лосс.
Записан
micstura
Full Member
***
Сообщений: 104


Просмотр профиля Email
« Ответ #6 : Июня 11, 2016, 02:51:15 am »

#line 0 solid blue


extern Stop=5;
extern Take=5;
extern "string" s="В market ставим 1, если торгуем акции, и 2, если фьючерсы";
extern market=1;

var DeleteActive =1;

static pos;
var security;
static predLast=0;
static predPos=0;
static enterPrice=0;
static closeHalf=0;


function setBuyTrailing(var size,var price)
{
             var stop = new_object("hash");
             stop["operation"] = OP_BUY;
             stop["tp_activationprice"] = price;
             stop["tp_quantity"] = size;
             stop["tp_correction"] = "0%";
             trade_action::transactMultiple(stop);
}
function setSellTrailing(var size,var price)
{
             var stop = new_object("hash");
             stop["operation"] = OP_SELL;
             stop["tp_activationprice"] = price;
             stop["tp_quantity"] = size;
             stop["tp_correction"] = "0%";
             trade_action::transactMultiple(stop);
}

function setBuyStop(var size,var price)
{
             var stop = new_object("hash");
             stop["operation"] = OP_BUY;
             stop["sl_activationprice"] = price;
             stop["sl_orderprice"]=price;
             stop["sl_quantity"] = size;
             stop["sl_correction"] = "0%";
             stop["usecredit"] = true;
             trade_action::transactMultiple(stop);
}
function setSellStop(var size,var price)
{
             var stop = new_object("hash");
             stop["operation"] = OP_SELL;
             stop["sl_activationprice"] = price;
             stop["sl_orderprice"]=price;
             stop["sl_quantity"] = size;
             stop["sl_correction"] = "0%";
             stop["usecredit"] = true;
             trade_action::transactMultiple(stop);
}

function setBuyStopTrailing(var size, var offset,var price,var start,var stop,var slip)
{
var stopLevel= price+stop;
var stopLevelOrder= price+stop+slip;
var guardSpread=slip+0;

             var stop = new_object("hash");
             stop["operation"] = OP_BUY;
             stop["tp_activationprice"] =price-start;
             stop["tp_quantity"] = size;
             stop["tp_correction"] = offset;
             stop["tp_guardspread"]=guardSpread;
             stop["sl_activationprice"] = stopLevel;
             //stop["sl_orderprice"] = stopLevelOrder;
             stop["sl_quantity"] = size;
          stop["usecredit"] = true;
             trade_action::transactMultiple(stop);
}

function setSellStopTrailing(var size, var offset,var price,var start,var stop,var slip)
{
     var guardSpread=slip+0;   
var stopLevel= price-stop;
var stopLevelOrder= price-stop-slip;

             var stop = new_object("hash");
             stop["operation"] = OP_SELL;
             stop["tp_activationprice"] = price+start;
             stop["tp_quantity"] = size;
             stop["tp_correction"] = offset;
             stop["tp_guardspread"]=guardSpread;
             stop["sl_activationprice"] = stopLevel;
            // stop["sl_orderprice"] = stopLevelOrder;
             stop["sl_quantity"] = size;
             trade_action::transactMultiple(stop);
}


function Buy(var message, var orderSize)
{

signal::alert(message);
var order = new_object("hash");
order["quantity"] =orderSize;
order["operation"] = OP_BUY;
trade_action::transact(order);
}

function Sell(var message,var orderSize)
{
signal::alert(message);
var order = new_object("hash");
order["quantity"] =orderSize;
order["operation"] = OP_SELL;
trade_action::transact(order);
}

function DeleteAllStopOrders()
{
 signal::outputMultiple("Удаляем все стопы");
 var arr= getActiveStopOrderIDs() ;
                if (arr.size()!=0)
                {
                   var i=0;
 
                    while (i < arr.size())
                    {
                   
                     trade_action::cancelStopOrder(arr);
                     i=i+1;
                    }
                }
}


function init()
{
 setTimer("f", 1000, TIMER_PERIODICALLY );

   pos = new_object("hash");
   security = new_object("hash");
   
       var curPos=0;
       if (market==1)
       {
       curPos=getSecBalance();
       }
       if (market==2)
       {
requestFORTSPositions(getClient());
        curPos=pos["totalnet"];
         if (pos.size()==1)
         {
            curPos=0;
         }
       }
        predPos=curPos;


DeleteAllStopOrders();


}

function onEnvEvent(var eventname)
{
   
        if (eventname == "CLIENT_HOLDINGS")
        {
         var info=getSecInfo();
         pos =  getFORTSPosition(getClient(), info["secid"]);
         }
   
}
function f()
{

     

 if (isHistoryCalculated())
   {
       
       
       var curPos=0;
       if (market==1)
       {
       curPos=getSecBalance();
       }
       if (market==2)
       {
         requestFORTSPositions(getClient());
        curPos=pos["totalnet"];
         if (pos.size()==1)
         {
            curPos=0;
         }
       }
       
       if (curPos==0&&predPos!=0)
       {
        signal::outputMultiple("Позиция закрыта. ");
         
             if (DeleteActive==1)
             {
                DeleteAllStopOrders();
             }   
       }

     
       if (abs(curPos)!=abs(predPos)&&curPos!=0)
       {
        DeleteAllStopOrders();
        signal::outputMultiple("Позиция открыта.Цена "+enterPrice);
         if (curPos>0&&enterPrice!=0)
         {
             signal::outputMultiple("Ставим стоп и тейк на продажу");
             setSellStopTrailing(curPos,0,enterPrice,Take,Stop,0);
         }
         if (curPos<0&&enterPrice!=0)
         {
             signal::outputMultiple("Ставим стоп и тейк на покупку");
             setBuyStopTrailing(-curPos,0,enterPrice,Take,Stop,0);
         }

       

       }


 
        predPos=curPos;
    }
   
}

function onClientTrade(var id)
{

  var trade = getTrade(id);
  enterPrice=trade["price"]+0;

}

function onATFOrderErr(var str)
{
 signal::outputMultiple(str);
}
Записан
LizaBug
Newbie
*
Сообщений: 3

ICQ Messenger - 117323747 MSN Messenger - rkoliv@yandex.com Yahoo Instant Messenger - Не может быть
Просмотр профиля Email
« Ответ #7 : Января 23, 2017, 03:23:20 am »

Как я понимаю стоп лосс надо обязательно использовать при небольшом депозите чтобы не слить все в ноль, верно? И для некоторой автоматизации торгов?
Записан

klimov
Разработчики
Hero Member
*****
Сообщений: 783


Просмотр профиля Email
« Ответ #8 : Января 23, 2017, 09:54:49 am »

Скорее для некоторой автоматизации
Слить в ноль запросто можно и при использовании стоп-лосс :)
Записан
Rauf_ns
Newbie
*
Сообщений: 1


Просмотр профиля Email
« Ответ #9 : Марта 23, 2017, 12:30:31 pm »

вставив его в транзак система выдает ошибку
Line 21: синтаксическая ошибка, неожиданный неопознанная ошибка

вот это строка
             var stop = new_object("hash");

подскажите плиз что в ней поправить. спс
Записан
Страниц: [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!