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

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


Просмотр профиля Email
« : 14.02.2014, 17:23:04 »

Как написать открытие первой свечи дня и  вывести это открытие на график в виде линии ? Ведь открывая любой тайм фрейм ниже дневного эта линия будет в одном и том же месте на весь день.
Записан
Scandinav
Newbie
*
Сообщений: 13


Просмотр профиля Email
« Ответ #1 : 14.02.2014, 19:32:56 »

var t1 = getSystemTime();
   var Day = getDay(t1);
   var Month = getMonth(t1);
   var Year = getYear(t1);
   
   var time = getTimeObject(10,0, Day, Month, Year);
   var n = getCandleByTime(time);

Я так делал поиск номера первой свечи. Может поможет.
Записан
micstura
Full Member
***
Сообщений: 104


Просмотр профиля Email
« Ответ #2 : 14.02.2014, 19:55:16 »

Спасибо сейчас попробую.
Записан
micstura
Full Member
***
Сообщений: 104


Просмотр профиля Email
« Ответ #3 : 14.02.2014, 23:56:31 »

Пока не выходит. А если иначе. Открытие дня это price самой первой сделки.
Записан
micstura
Full Member
***
Сообщений: 104


Просмотр профиля Email
« Ответ #4 : 15.02.2014, 01:00:09 »

static initprice;
 
function init()
{

   var candleno = getCandleByTime(getTimeObject(0, 0));
    initprice = open[candleno];

}



Xeller куда прибавить единицу ?

Например, можно вместо закрытия прошлого дня использовать открытие текущего, для этого надо к getCandleByTime(getTimeObject(0, 0)) прибавить единицу, а вместо close использовать open
Записан
micstura
Full Member
***
Сообщений: 104


Просмотр профиля Email
« Ответ #5 : 15.02.2014, 01:22:33 »

static initprice;
 
function init()
{
   setInitCandles(+1)


   var candleno = getCandleByTime(getTimeObject(0, 0))+1;
    initprice = open[candleno];

line[0] = initprice;
}



Так ?
Записан
micstura
Full Member
***
Сообщений: 104


Просмотр профиля Email
« Ответ #6 : 15.02.2014, 19:36:42 »

#samewindow
#line 0 nodraw

static initprice;
static signalled;
extern "string" message  = "Выше открытия дня !";
extern "string" message1 = "Ниже открытия дня !";
function init()
{
   setInitCandles(+1)


   var candleno = getCandleByTime(getTimeObject(0, 0))+1;
    initprice = open[candleno];

}

function onHistoryCalculated()
{
  signalled = false;
}

function calc()
{
  if (!signalled and close > initprice) {
    signal::alert(message);
    signalled = true;
  }
{
  if (!signalled and close < initprice) {
    signal::alert(message1);
    signalled = true;
  }
 }
}

Правильно или нет ? Как исправить ошибку выхода свечи за границу массива ?
Записан
White Noise
Full Member
***
Сообщений: 164


White Noise

ICQ Messenger - 411196569
Просмотр профиля Email
« Ответ #7 : 16.02.2014, 17:58:57 »

Ответ на первое сообщение:

#samewindow
#line 0 solid red


static x;

function init()
{
   var t1 = getSystemTime();
   var Day = getDay(t1);
   var Month = getMonth(t1);
   var Year = getYear(t1);
   var time = getTimeObject(10,1, Day, Month, Year);
   var n = getCandleByTime(time);
   x = open[n];
 
}

function calc()
{
  line[0] = x;
}
« Последнее редактирование: 16.02.2014, 18:20:42 от White Noise » Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #8 : 17.02.2014, 10:44:24 »

На странице "примеры" есть индикатор "Pivot Points", это не совсем в точности то что вам надо, но с лёгкими модификациями он будет выводить открытие дня.

Правда, ситуацию, когда начало дня отсутствует на графике, это никак не решит - тут уже только если докачивать руками или сохранять большое количество закачанных свечек в шаблоне.
Записан
micstura
Full Member
***
Сообщений: 104


Просмотр профиля Email
« Ответ #9 : 19.02.2014, 10:49:02 »

Что же даёт скрипт открытие дня приведённый ранее - открытие дня на тайм фреймах ниже дневного и на дневном на недельном открытие недели на 2 недельном открытие 2 недель

Теперь что даёт такой скрипт

#samewindow
#line 0 solid green


static x;

function init()
{
   var t1 = getSystemTime();
   var DayOfWeek = getDayOfWeek(t1);
   var Month = getMonth(t1);
   var Year = getYear(t1);
   var time = getTimeObject(10,1, DayOfWeek, Month, Year);
   var n = getCandleByTime(time);
   x = open[n];
 
}

function calc()
{
  line[0] = x;
}

На тайм фрейме ниже дневного ни чего. На дневном открытие 2 дня начала месяца. На недельном открытие месяца и на двух недельном открытие предыдущих 2 недель.

Вопрос как сделать чтобы один и тот же скрипт на разных тайм фреймах давал одни и те же значения открытия дня открытия недели и открытия месяца ведь они фактически уже существуют. И по здравому размышлению должны находится в одном и том же месте.

С  "Pivot Points" пробую пока не получается.

« Последнее редактирование: 19.02.2014, 10:51:07 от micstura » Записан
Страниц: [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!