Текущий период графика (как узнать?)
-
- Сообщения: 36
- Зарегистрирован: Ср мар 18, 2009 9:03 am
Текущий период графика (как узнать?)
Текущий период графика (как узнать?)
в MQL4 это можно узнать функцией
Period();
Заранее спасибо
в MQL4 это можно узнать функцией
Period();
Заранее спасибо
- Terranin
- Site Admin
- Сообщения: 846
- Зарегистрирован: Вс июл 23, 2006 12:01 pm
Re: Текущий период графика (как узнать?)
Для индикатора это можно узнать функцией Timeframe, для стратегий узнать нельзя потому что стратегия не привязана к таймфрейму и валюте, там Вы сами задаете текущую валюту и таймфрейм функцией SetCurrencyAndTimeframe.Sharx писал(а):Текущий период графика (как узнать?)
в MQL4 это можно узнать функцией
Period();
Заранее спасибо
Asta la vista
Mike
Mike
-
- Сообщения: 36
- Зарегистрирован: Ср мар 18, 2009 9:03 am
Re: Текущий период графика (как узнать?)
У меня такая задача:Terranin писал(а):Для индикатора это можно узнать функцией Timeframe, для стратегий узнать нельзя потому что стратегия не привязана к таймфрейму и валюте, там Вы сами задаете текущую валюту и таймфрейм функцией SetCurrencyAndTimeframe.Sharx писал(а):Текущий период графика (как узнать?)
в MQL4 это можно узнать функцией
Period();
Заранее спасибо
1. Рисовать линию от фрактала(0) до фрактала(1) не через буфер, а напрямую через содание обекта TrendLine (что то вроде зигзага)
2. Хотел чтобы при переключении таймфрейма, допустим с M5 на H1 линия перечечивалась по фракталам H1.
Сдесь скорее стоит задача Как получить текущий просматриваемый таймфрейм.
Можно ли это осуществить?
(ps в МТ4 при переключении таймфреймов, вызывается функция Start() 'куда приходят тики', в которой пресчитываются данные с учетом нового, полученого Period())
- Terranin
- Site Admin
- Сообщения: 846
- Зарегистрирован: Вс июл 23, 2006 12:01 pm
Re: Текущий период графика (как узнать?)
В Forex Tester индикаторы привязаны к конкретному таймфрейму, поэтому при переключении видимых таймфреймов для них ничего не меняется и ничего не пересчитывается. Если нужно видеть индикатор на таймфрейме m5 и h1 нужно повесить 2 индикатора на эти 2 таймфрейма. А внутри индикатора уже смотреть на каком таймфрейме он висит с помощью Timeframe.Sharx писал(а):У меня такая задача:Terranin писал(а):Для индикатора это можно узнать функцией Timeframe, для стратегий узнать нельзя потому что стратегия не привязана к таймфрейму и валюте, там Вы сами задаете текущую валюту и таймфрейм функцией SetCurrencyAndTimeframe.Sharx писал(а):Текущий период графика (как узнать?)
в MQL4 это можно узнать функцией
Period();
Заранее спасибо
1. Рисовать линию от фрактала(0) до фрактала(1) не через буфер, а напрямую через содание обекта TrendLine (что то вроде зигзага)
2. Хотел чтобы при переключении таймфрейма, допустим с M5 на H1 линия перечечивалась по фракталам H1.
Сдесь скорее стоит задача Как получить текущий просматриваемый таймфрейм.
Можно ли это осуществить?
(ps в МТ4 при переключении таймфреймов, вызывается функция Start() 'куда приходят тики', в которой пресчитываются данные с учетом нового, полученого Period())
Asta la vista
Mike
Mike
-
- Сообщения: 36
- Зарегистрирован: Ср мар 18, 2009 9:03 am
Re: Текущий период графика (как узнать?)
ЖальTerranin писал(а):В Forex Tester индикаторы привязаны к конкретному таймфрейму, поэтому при переключении видимых таймфреймов для них ничего не меняется и ничего не пересчитывается. Если нужно видеть индикатор на таймфрейме m5 и h1 нужно повесить 2 индикатора на эти 2 таймфрейма. А внутри индикатора уже смотреть на каком таймфрейме он висит с помощью Timeframe.Sharx писал(а):У меня такая задача:Terranin писал(а): Для индикатора это можно узнать функцией Timeframe, для стратегий узнать нельзя потому что стратегия не привязана к таймфрейму и валюте, там Вы сами задаете текущую валюту и таймфрейм функцией SetCurrencyAndTimeframe.
1. Рисовать линию от фрактала(0) до фрактала(1) не через буфер, а напрямую через содание обекта TrendLine (что то вроде зигзага)
2. Хотел чтобы при переключении таймфрейма, допустим с M5 на H1 линия перечечивалась по фракталам H1.
Сдесь скорее стоит задача Как получить текущий просматриваемый таймфрейм.
Можно ли это осуществить?
(ps в МТ4 при переключении таймфреймов, вызывается функция Start() 'куда приходят тики', в которой пресчитываются данные с учетом нового, полученого Period())
но всеравно Спасибо
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Re: Текущий период графика (как узнать?)
Михаил, скажите, а как текущий таймфрейм можно задать в скрипте?Terranin писал(а):Для индикатора это можно узнать функцией Timeframe, для стратегий узнать нельзя потому что стратегия не привязана к таймфрейму и валюте, там Вы сами задаете текущую валюту и таймфрейм функцией SetCurrencyAndTimeframe.Sharx писал(а):Текущий период графика (как узнать?)
в MQL4 это можно узнать функцией
Period();
Заранее спасибо
На запись:
Код: Выделить всё
// points index
index1 := iBarShift(Symbol, Timeframe, time1, false);
Хотя, к проекту скрипта я прикрепил и 'ScriptInterfaceUnit', и 'TechnicalFunctions'.
* * *
Кстати, не проще ли вам ввести константу "0" (ноль) для обозначения текущего таймфрейма (как в МТ4)?
Я желаю всем счастья.
- Terranin
- Site Admin
- Сообщения: 846
- Зарегистрирован: Вс июл 23, 2006 12:01 pm
Re: Текущий период графика (как узнать?)
Скрипты писались со стратегий и там нет такой возможности, потому что стратегия не привязана к таймфрейму или какому-то графику отдельному. Там валюта и таймфрейм задавались с помощью процедуры SetCurrencyAndTimeframe , и после этого и так было ясно какой таймфрейм используется потому что сами его и задавали. Но в принципе можно добавить такую возможность в следующем обновлении.Николай Тарасов писал(а):Михаил, скажите, а как текущий таймфрейм можно задать в скрипте?Terranin писал(а):Для индикатора это можно узнать функцией Timeframe, для стратегий узнать нельзя потому что стратегия не привязана к таймфрейму и валюте, там Вы сами задаете текущую валюту и таймфрейм функцией SetCurrencyAndTimeframe.Sharx писал(а):Текущий период графика (как узнать?)
в MQL4 это можно узнать функцией
Period();
Заранее спасибо
На запись:у меня компилятор выдаёт: [Error] TIRmTargets.dpr(83): Undeclared identifier: 'Timeframe'Код: Выделить всё
// points index index1 := iBarShift(Symbol, Timeframe, time1, false);
Хотя, к проекту скрипта я прикрепил и 'ScriptInterfaceUnit', и 'TechnicalFunctions'.
* * *
Кстати, не проще ли вам ввести константу "0" (ноль) для обозначения текущего таймфрейма (как в МТ4)?
Asta la vista
Mike
Mike
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Re: Текущий период графика (как узнать?)
Спасибо. Будем ждать.Terranin писал(а): ... в принципе можно добавить такую возможность в следующем обновлении.
А пока из положения, думаю, можно выйти как-то так.
---Как рассчитать количество дней и часов между двумя TDateTime?
Ниже приведён примерчик универсального определения периода между TDateTime. За основу взята функция DataDiff из RxLib и добавлено определение разности часов.В качестве домашнего задания: сделать расчёт минут, секунд и т.д.Код: Выделить всё
procedure DateTimeDiff(Date1, Date2: TDateTime; var Hours, Days, Months, Years: Word); var DtSwap: TDateTime; Day1, Day2, Month1, Month2, Year1, Year2: Word; Hour1, Min1, Sec1, MSec1, Hour2, Min2, Sec2, MSec2: Word; begin if Date1 > Date2 then begin DtSwap := Date1; Date1 := Date2; Date2 := DtSwap; end; DecodeDate(Date1, Year1, Month1, Day1); DecodeDate(Date2, Year2, Month2, Day2); Years := Year2 - Year1; Months := 0; Days := 0; Hours:= 0; if Month2 < Month1 then begin Inc(Months, 12); Dec(Years); end; Inc(Months, Month2 - Month1); if Day2 < Day1 then begin Inc(Days, DaysPerMonth(Year1, Month1)); if Months = 0 then begin Dec(Years); Months := 11; end else Dec(Months); end; Inc(Days, Day2 - Day1); DecodeTime(Date1, Hour1, Min1, Sec1, MSec1); DecodeTime(Date2, Hour2, Min2, Sec2, MSec2); if Hour2 < Hour1 then begin Inc(Hours, 24); Dec(Days); end; Inc(Hours, Hour2 - Hour1); end;
Источник: "Подборка книг по Delphi, Pascal" на http://www.RuTracker.org, справка "Delphi FAQ" (файл JBDelFAQ.hlp).
Я желаю всем счастья.
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Как в скрипте узнать Timeframe текущего графика
Ха! А можно сделать всё гораздо проще.
Чтобы в скрипте узнать Timeframe текущего графика достаточно на нём перебрать несколько последовательных баров (минимум 3-4 бара) и взять минимальное (или самое модное, если хотите) расстояние между ними в минутах.
Поскольку учёт времени в Forex Tester2 производится в днях (как в MS_Excel), то число минут между барами вычисляется элементарно:
Множитель "24*60=1440" – это количество минут в сутках.
Вероятно, позднее можно будет написать соответствующую функцию TimeFr().
PS
Понятно, что это временный выход из положения - до выхода улучшенной версии FT2.
Ха! А можно сделать всё гораздо проще.
Чтобы в скрипте узнать Timeframe текущего графика достаточно на нём перебрать несколько последовательных баров (минимум 3-4 бара) и взять минимальное (или самое модное, если хотите) расстояние между ними в минутах.
Поскольку учёт времени в Forex Tester2 производится в днях (как в MS_Excel), то число минут между барами вычисляется элементарно:
Код: Выделить всё
var
tf: integer = 1;
begin
tf := Trunc(Abs(ScriptInterfaceUnit.Time(0)-ScriptInterfaceUnit.Time(1))*24*60+5/9);
end;
Вероятно, позднее можно будет написать соответствующую функцию TimeFr().
Код: Выделить всё
function
TimeFr(quota: integer) result: integer;
...
Понятно, что это временный выход из положения - до выхода улучшенной версии FT2.
Я желаю всем счастья.
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Re: Текущий период графика (как узнать?)
Итак, прошу любить и жаловать - функция для расчёта Timeframe текущего графика (не только в скрипте):Terranin писал(а):Скрипты писались со стратегий и там нет такой возможности, потому что стратегия не привязана к таймфрейму или какому-то графику отдельному. Там валюта и таймфрейм задавались с помощью процедуры SetCurrencyAndTimeframe , и после этого и так было ясно какой таймфрейм используется потому что сами его и задавали. Но в принципе можно добавить такую возможность в следующем обновлении.Николай Тарасов писал(а):Михаил, скажите, а как текущий таймфрейм можно задать в скрипте?Terranin писал(а): Для индикатора это можно узнать функцией Timeframe, для стратегий узнать нельзя потому что стратегия не привязана к таймфрейму и валюте, там Вы сами задаете текущую валюту и таймфрейм функцией SetCurrencyAndTimeframe.
На запись:у меня компилятор выдаёт: [Error] TIRmTargets.dpr(83): Undeclared identifier: 'Timeframe'Код: Выделить всё
// points index index1 := iBarShift(Symbol, Timeframe, time1, false);
Хотя, к проекту скрипта я прикрепил и 'ScriptInterfaceUnit', и 'TechnicalFunctions'.
* * *
Кстати, не проще ли вам ввести константу "0" (ноль) для обозначения текущего таймфрейма (как в МТ4)?
Код: Выделить всё
function TimeFr(): integer;
// Поиск Timeframe по минимальному шагу баров, а не по самому модному,
// т.к. все бары в ForexTester_2.6 рассчитываются из минуток (M1).
// Минимальное число точек выборки (квота) - 4, т.к. между праздниками
// и выходным теоретически возможен всего один рабочий день.
var
i, quota, time_frame, time_step :integer;
begin
time_frame := Trunc(Abs(ScriptInterfaceUnit.Time(0)-
ScriptInterfaceUnit.Time(1))*24*60+5/9);
quota := 4;
if quota < Bars-2 then quota := Bars-2;
for i:=0 to quota do
begin
time_step := Trunc(Abs(ScriptInterfaceUnit.Time(i)-
ScriptInterfaceUnit.Time(i+1))*24*60+5/9);
if time_step < time_frame then time_frame := time_step;
end;
Result := time_frame;
end;
// Поиск Timeframe по минимальному шагу баров, а не по самому модному,
// т.к. все бары в ForexTester_2.6 рассчитываются из минуток (M1).
// Минимальное число точек выборки (квота) - 4, т.к. между праздниками
// и выходным теоретически возможен всего один рабочий день.
Я желаю всем счастья.
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Друзья, скажите, пожалуйста, как можно код программы с русскими комментариями
адекватно (без искажений кодировки русского шрифта) перенести в MS Word?
Пример (см. слово "Границы"):
1) код в Delphi7:
2) код после копирования его в буфер (Ctrl+C) и вставки в MS Word (Ctrl+V):
Заранее благодарю.
PS:
Русификация Delphi7 не помогла.
PS2:
Подправляя данный пост обратил внимание, что слово "Границы" во втором примере записано особым образом (кодом):
"Г" - '&''#''195;'
"р" - '&''#''240;'
"а" - '&''#''224;'
"н" - '&''#''237;'
"и" - '&''#''232;'
"ц" - '&''#''246;'
"ы" - '&''#''251;'
Апострофы я вставил, чтобы стали видны не символы, а их коды.
Понятно, что это коды специальных символов.
Подобным образом, полагаю, шифруется русский сегмент интернет-адресов.
Так же выглядят ссылки на страницы русской векипедии.
Теперь мой вопрос стал более определённым - как правильно спецсимволы конвертировать
в русский шрифт, и какими средствами это делать?
адекватно (без искажений кодировки русского шрифта) перенести в MS Word?
Пример (см. слово "Границы"):
1) код в Delphi7:
Код: Выделить всё
…
// Limits - Границы
alfa, betta, gamma, delta: TDateTime; // limit1..4
…
Код: Выделить всё
…
// Limits - Ãðàíèöû
alfa, betta, gamma, delta: TDateTime; // limit1..4
…
PS:
Русификация Delphi7 не помогла.
PS2:
Подправляя данный пост обратил внимание, что слово "Границы" во втором примере записано особым образом (кодом):
"Г" - '&''#''195;'
"р" - '&''#''240;'
"а" - '&''#''224;'
"н" - '&''#''237;'
"и" - '&''#''232;'
"ц" - '&''#''246;'
"ы" - '&''#''251;'
Апострофы я вставил, чтобы стали видны не символы, а их коды.
Понятно, что это коды специальных символов.
Подобным образом, полагаю, шифруется русский сегмент интернет-адресов.
Так же выглядят ссылки на страницы русской векипедии.
Теперь мой вопрос стал более определённым - как правильно спецсимволы конвертировать
в русский шрифт, и какими средствами это делать?
Я желаю всем счастья.
-
- Сообщения: 329
- Зарегистрирован: Сб июл 11, 2009 3:59 pm
Здравствуйте, Николай,
Похоже что-то не так с Вашим вордом
попробуйте сначала скопировать текст в блокнот а потом оттуда в ворд, или как вариант можно использовать какие-нибудь конвертеры (например прикреплённую программку)
Похоже что-то не так с Вашим вордом
попробуйте сначала скопировать текст в блокнот а потом оттуда в ворд, или как вариант можно использовать какие-нибудь конвертеры (например прикреплённую программку)
- Вложения
-
- TCode_UnicodeEncoder.zip
- (277.83 КБ) 881 скачивание
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Спасибо большое, Александр!FT Support писал(а):Здравствуйте, Николай,
Похоже что-то не так с Вашим вордом
попробуйте сначала скопировать текст в блокнот а потом оттуда в ворд, или как вариант можно использовать какие-нибудь конвертеры (например прикреплённую программку)
Очень полезный конвертор (подробности здесь: http://alexboiko.narod.ru).
Всё работает как надо.
Теперь можно не перепечатывать куски кода на русском.
PS:
Я думаю, что дело не в моём MS Word, MS "Блокнот" или MS Internet Explorer (даже не знаю, что ещё можно было бы попробовать).
Скорей всего, что-то не так с буфером обмена, т.е. с MS Windows XP.
Хотя, внутри Delphi7, буфер работает нормально.
Возможно, так проявляется 'Punto Switcher' - программа автоматического переключения раскладки клавиатуры от ООО "Яндекс".
Я желаю всем счастья.
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Кстати говоря, Александр.
Ваш редактор сообщений (здесь, на форуме) тоже кочевряжится, и ни в какую не желает отражать сообщения, содержащие ссылки на русские интернет-странички.
Вот пример:
Ваш редактор сообщений (здесь, на форуме) тоже кочевряжится, и ни в какую не желает отражать сообщения, содержащие ссылки на русские интернет-странички.
Вот пример:
Чтобы сообщение было видно, мне пришлось эмитировать, что это ссылка, отказавшись от явного указания, что это URL-код.Таблицу "Цвета HTML" смотрите здесь: http://ru.wikipedia.org/wiki/Цвета_в_Web
Я желаю всем счастья.
-
- Сообщения: 329
- Зарегистрирован: Сб июл 11, 2009 3:59 pm