4
« on: 02.03.2021, 18:34:33 »
Помогите пжста.
Беру стандартный пример кода, вставляю, размещаю на инструменте (фьючерсе), нажимаю иконку - становится зеленой.
Однако, заявки не выставляются. Ничего не происходит абсолютно.
Заранее спасибо!
// Данная демонстрационна стратегия продает
// при любом движении цены вверх на step_percent
// процентов и покупает при движении цены вниз
// на step_percent процентов в ожидании коррекции.
// При этом используются лимитированные заявки,
// постоянно выставлено пять-шесть лимитированных
// заявок на одинаковом расстоянии. Смотрите
// результаты тестировщика ATF для более наглядного
// представления.
extern step_percent = 0.003;
extern num = 5;
extern amount = 1;
var step;
static buy_count = 0;
static sell_count = 0;
function init()
{
step = step_percent / 100;
}
function buy(var price)
{
trade_action::buyMultiple(amount, ::lots, price);
buy_count += 1;
}
function sell(var price)
{
trade_action::sellMultiple(amount, ::lots, price);
sell_count += 1;
}
function setOrders()
{
var i = 1;
while (i <= num) {
buy(close * (1 - i*step));
sell(close * (1 + i*step));
i += 1;
}
}
function onHistoryCalculated()
{
setOrders();
}
function onATFOrder(var id)
{
var order = getOrder(id);
if (order["status"] == OS_MATCHED) {
if (order["operation"] == OP_BUY) {
buy_count -= 1;
var newprice = order["price"] * (1 - step * num);
var oldprice = order["price"] * (1 + step);
if (buy_count < num) {buy(newprice);}
sell(oldprice);
}
else {
sell_count -= 1;
var newprice = order["price"] * (1 + step * num);
var oldprice = order["price"] * (1 - step);
if (sell_count < num) {sell(newprice);}
buy(oldprice);
}
}
}