Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
16.02.2025, 08:37:58
Начало Помощь Поиск Войти Регистрация
Новости: ООО «Скрин маркет системз», правообладатель программы «Система брокерского обслуживания «TRANSAQ» официально заявляет, что не ведет никакой деятельности в мессенджерах или социальных сетях. 
Подробности на нашем сайте  WWW.TRANSAQ.RU.

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


Просмотр профиля Email
« : 05.04.2011, 01:44:51 »

ТКАЧ.
Есть два кода, которые работают только в режиме реального времени.
Первый код (Инд_130) считает самую большую сделку (лот/сделку) на свече:

#line 0 solid black

static intPrevVol;
static intPrevTrd;
static curPrevVT;

//=============================================================
function init()
{
   var intStartPosition = countCandles() - 1;
   
   setInitCandles(intStartPosition);
   setBounds(0, intStartPosition, 0);
}

//=============================================================
function calc()
{
  var intDVol;
   var intDTrd;
   
   var curVT;
   var curDVT;
   
   intDVol = volume - intPrevVol;
   intDTrd = trades - intPrevTrd;
   
   if (intDTrd != 0)  {curVT = intDVol / intDTrd;}   
   curDVT = curPrevVT - curVT;
   
   if (curDVT < 0)  {
      line[0] = curVT;
      curPrevVT = curVT;
   }
   else  {
      line[0] = curPrevVT;
   }
   
   intPrevVol = volume;
   intPrevTrd = trades;   
}

//=============================================================
function onNewCandle()
{
   intPrevVol = 0;   
   intPrevTrd = 0;   
   curPrevVT = 0;
}

----------------
Второй код (Инд_131) на свече считает сколько сделок произошло в диапазоне между значениями параметров pBound_n и pBound_n-1:

#line 0 solid black
#line 1 solid red
#line 2 solid blue
#line 3 solid green
#line 4 solid purple

extern pBound_00 = 10000;
extern pBound_01 = 30000;
extern pBound_02 = 50000;
extern pBound_03 = 70000;

static intPrevVol;
static intPrevTrd;

static intNum_00;
static intNum_01;
static intNum_02;
static intNum_03;
static intNum_04;

//=============================================================
function init()
{
   var intStartPosition = countCandles() - 1;
   
   setInitCandles(intStartPosition);
   setBounds(0, intStartPosition, 0);
   setBounds(1, intStartPosition, 0);
   setBounds(2, intStartPosition, 0);
   setBounds(3, intStartPosition, 0);
   setBounds(4, intStartPosition, 0);
}

//=============================================================
function calc()
{
  var intDVol;
   var intDTrd;   
   var curVT;
   
   intDVol = volume - intPrevVol;
   intDTrd = trades - intPrevTrd;
   
   if (intDTrd != 0)  {curVT = intDVol / intDTrd;}   
   
   if (curVT > 0 and curVT <= pBound_00)  {
      intNum_00 += 1;
      line[0] = intNum_00;
   }   
   else if (curVT > pBound_00 and curVT <= pBound_01)  {
      intNum_01 += 1;
      line[1] = intNum_01;
   }   
   else if (curVT > pBound_01 and curVT <= pBound_02)  {
      intNum_02 += 1;
      line[2] = intNum_02;
   }   
   else if (curVT > pBound_02 and curVT <= pBound_03)  {
      intNum_03 += 1;
      line[3] = intNum_03;
   }
      else if (curVT > pBound_03)  {
      intNum_04 += 1;
      line[4] = intNum_04;
   }
   
   intPrevVol = volume;
   intPrevTrd = trades;
}

//=============================================================
function onNewCandle()
{
   intPrevVol = 0;   
   intPrevTrd = 0;
   
   intNum_00 = 0;
   intNum_01 = 0;
   intNum_02 = 0;
   intNum_03 = 0;
   intNum_04 = 0;
}

-----------------------
Далее он должен рисовать 4-ре линии в соответствии с входными параметрами. Но кроме первой линии все остальные = 0.
Внизу на картинке по 130 видно, какие самые большие сделки прошли на свече.
С параметрами по умолчанию 131 должен: показать на красной линии кол-во сделок от 10000 до 30000 лот/сделку, синей линией от 30000 до 50000 и т.д.
Но все остальные линии, кроме line[0] равны нулю. Почему?
Приложи, Роман, оба индюка, не меняя параметры на графики сбера_обыкновенные и газпрома. В конце торгов посмотришь на графики.
И еще вопрос: нельзя ли окно для отправки сообщения побольше сделать? Неудобно писать. Обзор равен 12 строкам.

Записан
popova
Newbie
*
Сообщений: 1


Просмотр профиля Email
« Ответ #1 : 17.04.2011, 20:23:15 »

Видимо нельзя сделать окно для отправки сообшения побольше.
« Последнее редактирование: 21.04.2011, 08:19:39 от popova » Записан
Олег
Hero Member
*****
Сообщений: 849



Просмотр профиля Email
« Ответ #2 : 17.04.2011, 23:32:53 »

Видимо нельзя сделать окно для отправки сообшения побольше.

А Вы пишите сначала в Блокноте, а потом оттуда копируйте и вставляйте в окно сообщений. Я всегда так делаю.
Записан

Коллеги!
МТС фокусничает!
Будьте бдительны сами и предупредите всех своих хороших знакомых!
Я тоже на днях вляпался.
Схема "фокуса" описана вот здесь:
http://www.forum.sib.mts.ru/viewtopic.php?f=344&t=11381
makeev
Jr. Member
**
Сообщений: 85



Просмотр профиля Email
« Ответ #3 : 18.04.2011, 11:06:44 »

Народ подскажите...
Пересмотрел вроде все, ну возможнто что то не увидел. Кароч должен выводить разницу цен openp и closep и в процентном отношении. А вот чет не выводит.


var openp=0;
var closep=0;
var a =0;
var raznp=0;
var procp=0;


function calc()

{
var b = getMoneyBalance()+getSecBalance()*close;


if(open){a=a+1;}




if(a==1){openp=b;}




if(a==3){
closep=b;
raznp= closep-openp;
procp=(((closep*100)/openp)-100)/100;



signal::alert(procp+"**"+raznp);
}

a=0;
openp=0;
closep=0;


}
Записан
makeev
Jr. Member
**
Сообщений: 85



Просмотр профиля Email
« Ответ #4 : 18.04.2011, 11:09:22 »

Выводит только сообщение 0**0





var openp=0;
var closep=0;
var a =0;
var raznp=0;
var procp=0;


function calc()

{
var b = getMoneyBalance()+getSecBalance()*close;


if(open){a=a+1;}




if(a==1){openp=b;}




if(a==3){
closep=b;
raznp= closep-openp;
procp=(((closep*100)/openp)-100)/100;



signal::alert(procp+"**"+raznp);


a=0;
openp=0;
closep=0;


}



}
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #5 : 18.04.2011, 13:44:09 »

makeev, честно говоря я вообще не очень понимаю кода. Что вы хотели в результате добиться?
Записан
makeev
Jr. Member
**
Сообщений: 85



Просмотр профиля Email
« Ответ #6 : 19.04.2011, 09:27:25 »

makeev, честно говоря я вообще не очень понимаю кода. Что вы хотели в результате добиться?


var openp=0;
var closep=0;
var a =0;
var raznp=0;
var procp=0;
function calc()
{
var b = getMoneyBalance()+getSecBalance()*close;
if(open){a=a+1;}
if(a==1){openp=b;}
if(a==3){
closep=b;
raznp= closep-openp;
procp=(((closep*100)/openp)-100)/100;
signal::alert(procp+"**"+raznp);
a=0;
openp=0;
closep=0;
}}
var b = getMoneyBalance()+getSecBalance()*close;  оценка портфеля
if(open){a=a+1;}  счетчик. При каждой новой свечи добавляет 1
 if(a==1){openp=b;}    при значении равной 1 записывает в глобальную переменную значения оценки портфеля
if(a==3){
closep=b;
raznp= closep-openp;
procp=(((closep*100)/openp)-100)/100;
signal::alert(procp+"**"+raznp);
a=0;
openp=0;
closep=0;  При значении равному 3 записывает значения оценки портфеля. Потом вычисляем разницу записанных значений  closep-openp. Записываем в глобальную переменную procp разницу изменения  в процентном отношении.  Позже выводим на монитор сообщения вида:  (изменения в процентном отношении ** разница значений). Ну и позже обнуляем значения счетчика свечей «a», а также значения глобальных переменных    openp,closep. Вот и все.
Что должно получиться? - На экран сообщение  об изменении оценки портфеля. 
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #7 : 19.04.2011, 10:24:02 »

Я по прежнему не очень понял вашу идею, если честно. А зачем после вывода сообщения вы зануляете все переменные, и не стоит ли какие-то из них сделать типа static?

Попробуйте отлаживать это постепенно: как минимум посмотреть что у вас записано в промежуточных значениях (правой кнопкой на индикатор -> "Показать переменные ATF"). Так я вас ничего не могу сказать.
Записан
makeev
Jr. Member
**
Сообщений: 85



Просмотр профиля Email
« Ответ #8 : 19.04.2011, 12:06:54 »

Я по прежнему не очень понял вашу идею, если честно. А зачем после вывода сообщения вы зануляете все переменные, и не стоит ли какие-то из них сделать типа static?

Попробуйте отлаживать это постепенно: как минимум посмотреть что у вас записано в промежуточных значениях (правой кнопкой на индикатор -> "Показать переменные ATF"). Так я вас ничего не могу сказать.


Я зануляю значения только  openp, closep ,a ибо они мне нужны с нулевыми данными при новой оценки разницы данных.  А вот переменные raznp; procp которые мне нужны они то и не зануляются.

Спасибо конечно. Но сегодня утром у меня все заработало. Значения переменных  raznp; procp выводит как нужно, хотя в содержании скрипта я ничего не менял. Не знаю что это было. 

Записан
nikolz
Sr. Member
****
Сообщений: 285


Просмотр профиля Email
« Ответ #9 : 19.04.2011, 12:09:56 »

makeev!
  В качестве совета (на основе мирового опыта разработки программного обеспечения), Напишите сначала алгоритм (последовательность действий) простыми не "материнскими"  словами , а когда на разговорном языке сможете все сформулировать,то переходите на ATF.
Записан
makeev
Jr. Member
**
Сообщений: 85



Просмотр профиля Email
« Ответ #10 : 22.04.2011, 05:12:29 »

makeev!
  В качестве совета (на основе мирового опыта разработки программного обеспечения), Напишите сначала алгоритм (последовательность действий) простыми не "материнскими"  словами , а когда на разговорном языке сможете все сформулировать,то переходите на ATF.

Вы, правда, думаете, что Вы для меня открыли что-то важное?
Записан
nikolz
Sr. Member
****
Сообщений: 285


Просмотр профиля Email
« Ответ #11 : 22.04.2011, 06:16:43 »

makeev !
Я об этом не думал.
Просто приведенный Вами фрагмент кода программы и Ваш вопрос  дают повод так думать.
Не в обиду сказано, а блага для.
Записан
Страниц: [1] Печать 
Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Ошибки ATF « предыдущая тема следующая тема »
Перейти в:  


Войти

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