Тейк Профит и Стоп Лос

Страницы: 1
RSS
Тейк Профит и Стоп Лос
 
Подскажите пожалуйста  в даной транзакции нужно условия Спреда,если робот торгует Маркет Ордерами?
local Transaction = {
               ["ACTION"]              = "NEW_STOP_ORDER", -- Тип заявки
["TRANS_ID"]            = tostring(trans_id),
["CLASSCODE"]           =  "SPBFUT",
["SECCODE"]             =  "SRH6 ",
["ACCOUNT"]             = ACCOUNT,
["OPERATION"]           = "B"
["QUANTITY"]            = "1", -- Количество в лотах
["PRICE"]               = price, -- Цена, по которой выставится заявка при срабатывании Стоп-Лосса (для рыночной заявки по акциям должна быть 0)
["STOPPRICE"]           = stopprice, -- Цена Тэйк-Профита
["STOP_ORDER_KIND"]     = "TAKE_PROFIT_AND_STOP_LIMIT_ORDER", -- Тип стоп-заявки
["EXPIRY_DATE"]         = "TODAY", -- Срок действия стоп-заявки ("GTC" – до отмены,"TODAY" - до окончания текущей торговой сессии, Дата в формате "ГГММДД")
 
       ["SPREAD"]              = tostring(100*SEC_PRICE_STEP),
["SPREAD_UNITS"]        = "PRICE_UNITS", -- Единицы измерения защитного спрэда ("PRICE_UNITS" - шаг цены, или "PERCENTS" - проценты)
     

["STOPPRICE2"]          = stopprice2, -- Цена Стоп-Лосса
["IS_ACTIVE_IN_TIME"]   = "NO",
     
     ["COMMENT"]             = "Простой MA-робот ТЭЙК-ПРОФИТ и СТОП-ЛОСС"
}
    sendTransaction(Transaction);  

 
 
Вот изминил,Вопрос возможно ли прокальзование,если робот торгует маркет ордирами  



   STOP_LOSS         = 10;                    
   TAKE_PROFIT       = 30;            
   SEC_PRICE_STEP = getParamEx(SPBFUT , SRH6 , "SEC_PRICE_STEP").param_value;
   priceS=tostring (getParamEx("SPBFUT", "SRH6", 'bid').param_value)  
   stopprice = tostring(Price + TAKE_PROFIT*SEC_PRICE_STEP);
   stopprice2 = tostring(Price - STOP_LOSS*SEC_PRICE_STEP);

local Transaction = {
               ["ACTION"]              = "NEW_STOP_ORDER", -- Тип заявки
["TRANS_ID"]            = tostring(trans_id),
["CLASSCODE"]           =  "SPBFUT",
["SECCODE"]             =  "SRH6 ",
["ACCOUNT"]             = ACCOUNT,
["OPERATION"]           = "B"
["QUANTITY"]            = "1", -- Количество в лотах
["PRICE"]               = price, -- Цена, по которой выставится заявка при срабатывании Стоп-Лосса (для рыночной заявки по акциям должна быть 0)
["STOPPRICE"]           = stopprice, -- Цена Тэйк-Профита
["STOP_ORDER_KIND"]     = "TAKE_PROFIT_AND_STOP_LIMIT_ORDER", -- Тип стоп-заявки
["EXPIRY_DATE"]         = "TODAY", -- Срок действия стоп-заявки ("GTC" – до отмены,"TODAY" - до окончания текущей торговой сессии, Дата в формате "ГГММДД")
     
["STOPPRICE2"]          = stopprice2, -- Цена Стоп-Лосса
["IS_ACTIVE_IN_TIME"]   = "NO",
     
     
}
    sendTransaction(Transaction);    
 
что будет проскальзывать и  относительно чего?
 
Ну так я о томже,поясните зачем тогда в транзакцию вбивать спред?
 
в данном случае спред относится к тейк профиту, как я понял.
да, он нужен
 
Цитата
Валентин написал:
в данном случае спред относится к тейк профиту, как я понял.
да, он нужен
зачем?
 
В чом шибка стопа
local Transaction = {
["ACTION"] = "NEW_STOP_ORDER", -- Тип заявки
["TRANS_ID"] = tostring(trans_id),
["CLASSCODE"] = "SPBFUT",
["SECCODE"] = "SRH6 ",
["ACCOUNT"] =  "SPBFUT00963",
["OPERATION"] = "B"
["QUANTITY"] = "1", -- Количество в лотах
["PRICE"] = price, -- Цена, по которой выставится заявка при срабатывании Стоп-Лосса (для рыночной заявки по акциям должна быть 0)
["STOPPRICE"] =  "10290", -- Цена Тэйк-Профита
["STOP_ORDER_KIND"] = "TAKE_PROFIT_AND_STOP_LIMIT_ORDER", -- Тип стоп-заявки
["EXPIRY_DATE"] = "TODAY", -- Срок действия стоп-заявки ("GTC" – до отмены,"TODAY" - до окончания текущей торговой сессии, Дата в формате "ГГММДД")

["STOPPRICE2"] = "10260, -- Цена Стоп-Лосса
["IS_ACTIVE_IN_TIME"] = "NO",


}
sendTransaction(Transaction);
 
Вот в чом ошибка:lua:46: '}' expected (to close '{' at line 39) near '['
PriceStep = getParamEx('SPBFUT', 'RIH6' , 'SEC_PRICE_STEP').param_value
Price = getParamEx('SPBFUT', 'RIH6', 'LAST').param_value
PriceS = Price - 50 * PriceStep --маркет цена продажи
t = {

["CLASSCODE"]="SPBFUT",

["SECCODE"]="SRH6 ",

["ACTION"]="NEW_ORDER",

["ACCOUNT"]=" SPBFUT011Ib  ",

["CLIENT_CODE"]=" 000000326117  ",

["TYPE"]="L",

["OPERATION"]="S",

["QUANTITY"]="1",

["PRICE"]=tostring(PriceS),

["TRANS_ID"]="1"

}

res=sendTransaction(t)

message(res,1)
               
STOP_LOSS=5;                  
TAKE_PROFIT=5;
stoppric= tostring(Prices - TAKE_PROFIT*SEC_PRICE_STEP);  
stopprice2= tostring(Prices + STOP_LOSS*SEC_PRICE_STEP);



local Transaction = {
     ["ACTION"]              = "NEW_STOP_ORDER", -- Тип заявки
["TRANS_ID"]            = tostring(trans_id),
["CLASSCODE"]="SPBFUT",
["SECCODE"]="SRH6 ",              
["ACCOUNT"]="SPBFUT011Ib    ",
["OPERATION"]="B"  
["QUANTITY"]= "1",
["PRICE"]= tostring(PriceS),
["STOPPRICE"] = tostring(stopprice), -- Цена Тэйк-Профита
["STOP_ORDER_KIND"]= "TAKE_PROFIT_AND_STOP_LIMIT_ORDER", -- Тип стоп-заявки
["EXPIRY_DATE"]= "TODAY",  
       ["SPREAD"]=  "20"
       ["STOPPRICE2"]= tostring(stopprice2), -- Цена Стоп-Лосса
["IS_ACTIVE_IN_TIME"]= "NO",
               }
               sendTransaction(Transaction);    
 
Ребят помогите кому не сложно розобраться с тейком и стопом и я чтоб не делал все равно ошибка,код вверху
 
Цитата
Андрей Мурга написал:
Ребят помогите кому не сложно розобраться с тейком и стопом и я чтоб не делал все равно ошибка,код вверху
Добрый день.

Видим, что у Вас в транзакции не указан параметр OFFSET (Величина отступа от максимума (минимума) цены последней сделки)
Рекомендуем ознакомиться с примерами подачи подобных транзакций.
Раздел 6. Совместная работа с другими приложениями/Импорт транзакций/Формат .tri-файла с параметрами транзакций/Примеры строк, которые могут содержаться в файле
 
lua:46: '}' expected (to close '{' at line 39) near '['
указан номер строки, и указана ошибка
 
expected (to close '{' at line 39) near '['
в линии 39 отсутствует закрывающая скобка для '{} около '['
------------------------------------------------------
это че Вы и жевать за меня будете? - АГА!!!
 
а как правильно закрить?
 
покажите  39 линию в тексте.
 
 Transaction = {
 
Запятая пропущена:
["SPREAD"]= "20",
Надо делать так, как надо. А как не надо - делать не надо.
 
["SPREAD"]=  "20"
нет запятой
надо так
["SPREAD"]=  "20",
 
ошибка таже 39 и 46 строка
 
ocal Transaction = {
["ACTION"] = "NEW_STOP_ORDER", -- Тип заявки
["TRANS_ID"] = tostring(trans_id),
["CLASSCODE"]="SPBFUT",
["SECCODE"]="SRH6 ",
["ACCOUNT"]="SPBFUT011Ib ",
["OPERATION"]="B",
["QUANTITY"]= "1",
["PRICE"]= tostring(PriceS),
["STOPPRICE"] = tostring(stopprice), -- Цена Тэйк-Профита
["STOP_ORDER_KIND"]= "TAKE_PROFIT_AND_STOP_LIMIT_ORDER", -- Тип стоп-заявки
["EXPIRY_DATE"]= "TODAY",
["SPREAD"]= "20",
["STOPPRICE2"]= tostring(stopprice2), -- Цена Стоп-Лосса
["IS_ACTIVE_IN_TIME"]= "NO"
}
sendTransaction(Transaction);
--------------------------------------------------------
если самому живать лень, то ы сразу пишите и строки . где 46 строка?
 
local Transaction = {
["ACTION"] = "NEW_STOP_ORDER", -- Тип заявки
["TRANS_ID"] = tostring(trans_id),
["CLASSCODE"]="SPBFUT",
["SECCODE"]="SRH6 ",
["ACCOUNT"]="SPBFUT011Ib ",
["OPERATION"]="B",
["QUANTITY"]= "1",
["PRICE"]= tostring(PriceS),
["STOPPRICE"] = tostring(stopprice), -- Цена Тэйк-Профита
["STOP_ORDER_KIND"]= "TAKE_PROFIT_AND_STOP_LIMIT_ORDER", -- Тип стоп-заявки
["EXPIRY_DATE"]= "TODAY",
["SPREAD"]= "20",
["STOPPRICE2"]= tostring(stopprice2), -- Цена Стоп-Лосса
["IS_ACTIVE_IN_TIME"]= "NO"
}
sendTransaction(Transaction);
--------------------------------------------------------
 
если самому жевать лень, то сразу пишите и строки . где 46 строка?
 
["QUANTITY"]= "1",
 
огромное вам спасибо
 
Почему не видит шаг цени?
PriceStep = getParamEx('SPBFUT', 'RIH6' , 'SEC_PRICE_STEP').param_value
Price = getParamEx('SPBFUT', 'RIH6', 'LAST').param_value
PriceS = Price - 50 * PriceStep --маркет цена продажи
t = {

["CLASSCODE"]="SPBFUT",

["SECCODE"]="SRH6 ",

["ACTION"]="NEW_ORDER",

["ACCOUNT"]=" SPBFUT00b52 ",

["CLIENT_CODE"]=" 99883 ",

["TYPE"]="L",

["OPERATION"]="S",

["QUANTITY"]="1",

["PRICE"]=tostring(PriceS),

["TRANS_ID"]="1"

}

res=sendTransaction(t)

message(res,1)
               
STOP_LOSS=5;                  
TAKE_PROFIT=5;
stoppric= tostring(Prices - TAKE_PROFIT*SEC_PRICE_STEP);  
stopprice2= tostring(Prices + STOP_LOSS*SEC_PRICE_STEP);
SEC_PRICE_STEP = getParamEx('SPBFUT', 'RIH6' , 'SEC_PRICE_STEP').param_value

local Transaction = {
["ACTION"] = "NEW_STOP_ORDER", -- Тип заявки
["TRANS_ID"] = tostring(trans_id),
["CLASSCODE"]="SPBFUT",
["SECCODE"]="SRH6 ",
["ACCOUNT"]="SPBFUT011Ib ",
["OPERATION"]="B",
["QUANTITY"]= "1",
["PRICE"]= tostring(PriceS),
["STOPPRICE"] = tostring(stopprice), -- Цена Тэйк-Профита
["STOP_ORDER_KIND"]= "TAKE_PROFIT_AND_STOP_LIMIT_ORDER", -- Тип стоп-заявки
["EXPIRY_DATE"]= "TODAY",
["SPREAD"]= "20",
["STOPPRICE2"]= tostring(stopprice2), -- Цена Стоп-Лосса
["IS_ACTIVE_IN_TIME"]= "NO"
}
sendTransaction(Transaction);

 
 
а как Вы узнали, что не видит?
 
attempt to perform arithmetic on global 'SEC_PRICE_STEP' (a nil value)
 
Проверил месседжом там всьо работает
 
у Вас нет присвоения значения переменной SEC_PRICE_STEP
----------------------
"Это у Вас не заливная рыба"
 
   Не указаны единицы измерения защитного интервала take profit стоп-заявки.В скрипте они есть почму же он их не видит?
SEC_PRICE_STEP = getParamEx('SPBFUT', 'RIH6' , 'SEC_PRICE_STEP').param_value
STOP_LOSS=3;
TAKE_PROFIT=3;
stopprice= tostring(PriceS - TAKE_PROFIT*SEC_PRICE_STEP);
stopprice2= tostring(PriceS + STOP_LOSS*SEC_PRICE_STEP);

local Transaction = {
["ACTION"] = "NEW_STOP_ORDER", -- Тип заявки
["TRANS_ID"] = "2",
["CLASSCODE"]="SPBFUT",
["SECCODE"]="RIH6",
["ACCOUNT"]="SPBFUT011Ib",
["OPERATION"]="B",
["QUANTITY"]= "1",
["PRICE"]= tostring(PriceS),
["STOPPRICE"] = tostring(stopprice), -- Цена Тэйк-Профита
["STOP_ORDER_KIND"]= "TAKE_PROFIT_AND_STOP_LIMIT_ORDER", -- Тип стоп-заявки
["EXPIRY_DATE"]= "TODAY",
["OFFSET"]              = tostring(2*SEC_PRICE_STEP),
["OFFSET_UNITS"]        = "PRICE_UNITS",
["SPREAD"]= "40",
["STOPPRICE2"]= tostring(stopprice2), -- Цена Стоп-Лосса
["IS_ACTIVE_IN_TIME"]= "NO"
}
res = sendTransaction(Transaction);

message('Выставление тейк-стоп: '..res,2)
 
их там нет.
 
SPREAD_UNITS  --- ????
---------------------------------------------
Учитесь жевать самостоятельно.
 
я поставил стоп на 30п а заявка виставилась больше чем на 500п почему
 
почитайте в документации по квику
раздел 5
пункт Условные(стоп)-заявки
Типы заявок 4.Тэйк-профит и стоп-лимит
 
прочитал ну так оступ=10 и тогда должна виставиться заявка на 30п тоесть от цени входа  на 40п,ну никак на 500
 
теперь напишите , как Вы понимаете срабатывание стопа на каком-либо числовом примере,
при этом укажите  о чем Вы говорите - о стоп-лимите или тэйк-профите.
 
Здравствуйте,у меня опять проблема на этот рас с проскальзиваныем цены,заявка активируется но цена уходит,заявка не исполнена,Подскажите что сделать чтоб не проскальзивало,вот скрипт  
PriceStep = getParamEx('SPBFUT', 'RIH6' , 'SEC_PRICE_STEP').param_value
Price = getParamEx('SPBFUT', 'RIH6', 'LAST').param_value
PriceS = Price - 50 * PriceStep --маркет цена продажи
t = {

["CLASSCODE"]="SPBFUT",

["SECCODE"]="RIH6",

["ACTION"]="NEW_ORDER",

["ACCOUNT"]="SPBFUT011Ib ",

["CLIENT_CODE"]=" 99883",

["TYPE"]="L",

["OPERATION"]="S",

["QUANTITY"]="1",

["PRICE"]=tostring(PriceS),

["TRANS_ID"]="1"

}

res=sendTransaction(t)

message('Открытие позиции: '..res,1)

PriceStep = getParamEx('SPBFUT', 'RIH6' , 'SEC_PRICE_STEP').param_value
PriceT = getParamEx('SPBFUT', 'RIH6', 'LAST').param_value
PriceT = Price * 1 --маркет цена продажи




SEC_PRICE_STEP = getParamEx('SPBFUT', 'RIH6' , 'SEC_PRICE_STEP').param_value
STOP_LOSS=1;
TAKE_PROFIT=3;
stopprice= tostring(PriceT - TAKE_PROFIT*SEC_PRICE_STEP);
stopprice2= tostring(PriceT + STOP_LOSS*SEC_PRICE_STEP);

local Transaction = {
["ACTION"] = "NEW_STOP_ORDER", -- Тип заявки
["TRANS_ID"] = "2",
["CLASSCODE"]="SPBFUT",
["SECCODE"]="RIH6",
["ACCOUNT"]="SPBFUT011Ib",
["OPERATION"]="B",
["QUANTITY"]= "1",
["PRICE"]= tostring(PriceT),
["STOPPRICE"] = tostring(stopprice), -- Цена Тэйк-Профита
["STOP_ORDER_KIND"]= "TAKE_PROFIT_AND_STOP_LIMIT_ORDER", -- Тип стоп-заявки
["EXPIRY_DATE"]= "TODAY",
["OFFSET"]              = tostring(2*SEC_PRICE_STEP),
["OFFSET_UNITS"]        = "PRICE_UNITS",
["SPREAD"]= "30",
["SPREAD_UNITS"]        = "PRICE_UNITS",
["STOPPRICE2"]= tostring(stopprice2), -- Цена Стоп-Лосса
["IS_ACTIVE_IN_TIME"]= "NO"
}
res = sendTransaction(Transaction);

message('Выставление тейк-стоп: '..res,2)
 
Проблема в том, что Вы не знаете как работают стоп и тэйк.
Поэтому сделайте сначала числовой пример
Если хотите комментарий, то расскажите его на форуме.
Когда станет понятно с исполнением стопов, тогда поймете,
что то,
что Вы получаете - это нормально,
а то, о чем Вы мечтаете, это не реально.
 
О чом же я таком нереальном мечтаю,если вы о стопе 1п,то я его вбил  для того чтоб быстрее понять работу скрипта  
Страницы: 1
Читают тему
Наверх