Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
Октября 12, 2024, 09:31:47 am
Новости:
Transaq
|
СБО "Transaq"
|
Подсистема ATF
| Topic:
Стохастик
« предыдущая тема
следующая тема »
Страниц:
[
1
]
Автор
Тема: Стохастик (Прочитано 4866 раз)
buv87
Newbie
Сообщений: 12
Стохастик
«
:
Марта 25, 2015, 11:16:32 am »
Добрый день! Пробую сделать робота, который покупает или продает при пересечении линий стохастика.
При тесте в Транзаке получается такая картина...
Получается непонятно как сделки совершает. Заметил что пересечения стохастика происходят не всегда на свечке, бывает и между свечей. Как сделать чтобы после пересечения стохастика, сделка открывалась на след свече?
#line 0 solid lime
#line 1 solid red
extern "number" perstoh = 14; // Период стохастика
extern "number" skol = 3; // Период скользящей
extern "number" lots = 1; // Базовое число лотов актива
static SecName;
static lotsize;
static NewCandle;
static CandleTime;
static quantity;
function init()
{
setInitCandles(perstoh+1);
SecName = getSecName();
lotsize = getLotSize();
NewCandle = false;
CandleTime = getFormattedTime(getServerTime());
}
function onNewCandle()
{
NewCandle = true;
CandleTime = getFormattedTime(getCandleTime());
quantity = lots*2;
// Определим число лотов в портфеле
}
function calc()
{
line[0] = IndRef("stochastic", perstoh, skol, ind_sma)[0];
line[1] = IndRef("stochastic", perstoh, skol, ind_sma)[1];
if (NewCandle) {
if(line[0][-1] > line[1][-1] && line[0] < line[1])
{
var order = new_object("hash");
order["quantity"] =2 ;
order["operation"] = OP_BUY;
trade_action::transact(order);
}
if(line[0][-1] < line[1][-1]&& line[0] > line[1])
{
var order = new_object("hash");
order["quantity"] =2 ;
order["operation"] = OP_SELL;
trade_action::transact(order);
}
NewCandle = false;
}
}
Записан
buv87
Newbie
Сообщений: 12
Re: Стохастик
«
Ответ #1 :
Марта 25, 2015, 04:48:06 pm »
Сделал другой вариант. По событию пересечения. Картина та же
#line 0 solid lime
#line 1 solid red
extern "number" perstoh = 14; // Период стохастика
extern "number" skol = 3; // Период скользящей
extern "number" lots = 1; // Базовое число лотов актива
function init()
{
setInitCandles(1);
}
function onCross(var a, var b)
{
if (a == 0 && b==1 ) {
trade_action::buy(1, ::lots);
}
if (a == 1 && b==0) {
trade_action::sell(1, ::lots);
}
}
function calc()
{
line[0] = IndRef("stochastic", perstoh, skol, ind_sma)[0];
line[1] = IndRef("stochastic", perstoh, skol, ind_sma)[1];
addCrossWatch(0);
addCrossWatch(1);
}
Записан
ramil
Newbie
Сообщений: 9
Re: Стохастик
«
Ответ #2 :
Марта 27, 2015, 12:45:00 pm »
Попробуй так:
//Проба - stoch
//prstoch
#line 0 solid lime
#line 1 solid red
extern "number" perstoh = 14; // Период стохастика
extern "number" skol = 3; // Период скользящей
extern "number" lots = 1; // Базовое число лотов актива
static SecName;
static lotsize;
static NewCandle;
static CandleTime;
static quantity;
static posn = 0;
function init()
{
setInitCandles(perstoh+1);
SecName = getSecName();
lotsize = getLotSize();
NewCandle = false;
CandleTime = getFormattedTime(getServerTime());
}
function onNewCandle()
{
NewCandle = true;
CandleTime = getFormattedTime(getCandleTime());
quantity = lots*2;
// Определим число лотов в портфеле
}
function calc()
{
line[0] = IndRef("stochastic", perstoh, skol, ind_sma)[0];
line[1] = IndRef("stochastic", perstoh, skol, ind_sma)[1];
// автозапуск при позиция = 0
if (posn == 0 && line[0][-1] > line[1][-1] && line[0] < line[1])
{
var order = new_object("hash");
order["quantity"] =2 ;
order["operation"] = OP_BUY;
trade_action::transact(order);posn = 1;
}
if(posn ==0 && line[0][-1] > line[1][-1] && line[0] < line[1])
{
var order = new_object("hash");
order["quantity"] =2 ;
order["operation"] = OP_SELL;
trade_action::transact(order);posn = -1;
}
if (NewCandle ) {
if(posn ==-1 && line[0][-1] > line[1][-1] && line[0] < line[1])
{
var order = new_object("hash");
order["quantity"] =2 ;
order["operation"] = OP_BUY;
trade_action::transact(order);posn = 1;
}
if(posn ==1 &&line[0][-1] < line[1][-1]&& line[0] > line[1])
{
var order = new_object("hash");
order["quantity"] =2 ;
order["operation"] = OP_SELL;
trade_action::transact(order);posn = -1;
}
NewCandle = false;
}
}
Усgехов!
Записан
buv87
Newbie
Сообщений: 12
Re: Стохастик
«
Ответ #3 :
Марта 30, 2015, 10:45:53 pm »
Спасибо!
Записан
Страниц:
[
1
]
Transaq
|
СБО "Transaq"
|
Подсистема ATF
| Topic:
Стохастик
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
J
-----------------------------
-----------------------------
П
-----------------------------
-----------------------------
0
-----------------------------
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Powered by SMF 2.0.10
|
SMF © 2006-2008, Simple Machines LLC
Загружается...