Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Сентября 13, 2024, 08:54:38 pm
Начало Помощь Поиск Войти Регистрация
Новости:

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


Просмотр профиля Email
« : Августа 18, 2014, 06:17:54 pm »

Господа, помогите, пожалуйста, непрограммисту применить в существующем скрипте анализ текущей позиции на ФОРТСе.
Что нужно добавить, чтобы заявки на покупку активировались бы, только если текущая позиция на ФОРТСе была равна 0, а заявки на продажу активировались бы, только если текущая позиция на ФОРТСе была больше 0. Причём сигнал на продажу купленного ранее контракта может быть получен спустя несколько недель после покупки (если это имеет, какое либо значение).
#samewindow
#line 0 solid green   
#line 1 solid red
  function init() 
{
setInitCandles(1);
}
function calc()
{
line[0] = MovAvg(ind_ema, 50, pt_close);
line[1] = MovAvg(ind_ema, 70, pt_close);
}
function  onNewCandle()   
{
if(close[-1]>line[0][-1] and  close[-2]<line[0][-2]){   
trade_action::buy(1, ::lots,close+10);}     
 if(close[-1]<line[1][-1] and  close[-2]>line[1][-2]){   
 trade_action::sell(1, ::lots,close-10);}       
 }
Записан
eurusd_05
Newbie
*
Сообщений: 20


Просмотр профиля Email
« Ответ #1 : Ноября 05, 2014, 04:23:23 pm »

тут не все так просто сначала надо эту текущую позицию получить через команду getFORTSPosition(client, sec) а это хэш сам думаю над этим
Записан
aq2003
Jr. Member
**
Сообщений: 64


Просмотр профиля Email
« Ответ #2 : Ноября 19, 2014, 06:53:39 am »

Вот пример кода, как получать текущую позицию и деньги со срочного рынка:

function FORTS_getSecBalance()
{

   var a = getSecInfo();
   var i = getFORTSPosition(client, a["secid"]);
   return i["totalnet"];
}

function FORTS_getMoneyBalance()
{

   var a = getSecInfo();
   var i = getFORTSPosition(client, a["secid"]);
   return i["mfree"];
}

Фишка в том, что данные срочного рынка не обновляются автоматически, надо делать вручную. Для этого надо вызывать requestFORTSPositions(client) регулярно либо по событиям onTrade, onOrder.
Записан
jeekk
Newbie
*
Сообщений: 5


Просмотр профиля Email
« Ответ #3 : Ноября 05, 2017, 06:26:33 pm »

Задача стоит в определении открытой текущей позиции.

function totalForts(){
    var CliArr = new_object("array");   
    CliArr = getClient();
    var SecArr = new_object("array");
    SecArr = getSecInfo(); 
    var TotArr = new_object("array");   
    TotArr = getFORTSPosition(CliArr["client"], SecArr["secid"]); 
    return TotArr["totalnet"];                   // возращаем текущую позицию       
}

Надо вызывать requestFORTSPositions(client) регулярно либо по событиям onTrade, onOrder.

На программном примере, как будет выглядеть?
« Последнее редактирование: Ноября 06, 2017, 12:34:41 pm от jeekk » Записан
jeekk
Newbie
*
Сообщений: 5


Просмотр профиля Email
« Ответ #4 : Ноября 06, 2017, 02:52:33 pm »

Может вот так:

function totalForts(){
      requestFORTSPositions(getClient());
      var  TotArr = getFORTSPosition(getClient(), getSecInfo()); 
    return TotArr["totalnet"];                         
}

Так все зависает... Проблема в requestFORTSPositions(getClient());

function totalForts(){
      var  TotArr = getFORTSPosition(getClient(), getSecInfo()); 
    return TotArr["totalnet"];                         
}
« Последнее редактирование: Ноября 07, 2017, 11:05:20 am от jeekk » Записан
Страниц: [1] Печать 
Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Текущая позиция на ФОРТС « предыдущая тема следующая тема »
Перейти в:  


Войти

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