Light Style© by Fisana

Перейти к содержимому


РАММ сервис NordFx: копируй сделки лучших трейдеров форекс


NordFX

Фотография

Создание скриптов


  • Пожалуйста, авторизуйтесь, чтобы ответить
68 ответов в этой теме

#46 Speeqoolyant

Speeqoolyant

    прописался

  • Пользователь
  • PipPipPip
  • 68 сообщений

Опубликовано 26 Ноябрь 2009 - 07:29

Доброго времени!
1.Подскажите, а могу ли я, используя
extern datetime NOW;
добиться того, чтобы в окне ввода параметров УЖЕ СТОЯЛА текущая дата?

2. Как мне, имея datetime получить его же, только со временем "00:00"?
(не нашел функций - неужели их нет?)

спасибо!

Дружище!
Чтоб получить квалифицированный ответ, надо грамотно поставить вопрос. Начну со второго:
- datetime это тип переменной, как и int и string и bool. В этом контексте не понимаю вопроса вообще!
Вдумайся, как мне, имея тип получить его же (тип), только со временем "00:00"? Тип меняется при приведении типов, а так сохраняется.
- extern значит, что можно руками менять ее значение, в ex4 файле, datetime - см. п. выше, NOW - просто ее имя (персональное клеймо).
Смысл этой конструкции в том, чтобы в какое-то время, или до какого-то времени, или начиная с какого-то времени, советник
что-то делал (сделал). Т.е. проверяется условие равенства текущего времени и предустановленного в переменной NOW.
В момент запуска программы, она инициализируется или нулем, или значением, заданным прогером, или значением с предыдущего запуска.
Но прога при исполнении сама может ее менять. Однократно, периодически, при каких-то условиях и т. д.
Определись, что тебе нужно, конкретно.
PS. Не жалей букв при формулировании вопроса.

#47 xMark

xMark

    записался

  • Пользователи ST test (off)
  • PipPip
  • 34 сообщений

Опубликовано 26 Ноябрь 2009 - 08:51


Доброго времени!
1.Подскажите, а могу ли я, используя
extern datetime NOW;
добиться того, чтобы в окне ввода параметров УЖЕ СТОЯЛА текущая дата?

2. Как мне, имея datetime получить его же, только со временем "00:00"?
(не нашел функций - неужели их нет?)

спасибо!

Дружище!
Чтоб получить квалифицированный ответ, надо грамотно поставить вопрос. Начну со второго:
- datetime это тип переменной, как и int и string и bool. В этом контексте не понимаю вопроса вообще!
Вдумайся, как мне, имея тип получить его же (тип), только со временем "00:00"? Тип меняется при приведении типов, а так сохраняется.
- extern значит, что можно руками менять ее значение, в ex4 файле, datetime - см. п. выше, NOW - просто ее имя (персональное клеймо).
Смысл этой конструкции в том, чтобы в какое-то время, или до какого-то времени, или начиная с какого-то времени, советник
что-то делал (сделал). Т.е. проверяется условие равенства текущего времени и предустановленного в переменной NOW.
В момент запуска программы, она инициализируется или нулем, или значением, заданным прогером, или значением с предыдущего запуска.
Но прога при исполнении сама может ее менять. Однократно, периодически, при каких-то условиях и т. д.
Определись, что тебе нужно, конкретно.
PS. Не жалей букв при формулировании вопроса.

Спасибо за ответ, дружище! ;)
Поясняю (в твоем порядке)
1. В вопросе "Как мне, имея datetime получить его же, только со временем "00:00" "
подразумевается, как мне, имея переменную типа datetime получить значение этой же переменной, но со временем "00:00"
сорри за лаконичность, но мне казалось, что умным людям будет понятно...
2. про extern. Как я понимаю, extern позволяет, как минимум, (при соотв. проперти), спросить значение этой переменной у юзера. Так вот, вопрос в том, что: "добиться того, чтобы в окне ввода параметров УЖЕ СТОЯЛА текущая дата", а не "1970.01.01 00:00", которая стоит по умолчанию. Это же и есть "инициализируется нулем". А я хочу, чтоб она инициализировалась текущей датой, но юзер мог и изменить ее (перем.NOW) значение на другое. Судя по твоему ответу достаточно перед конструкцией
extern datetime NOW;
дописать присвоение этой переменной текущей даты. Но разве конструкция языка это позволяет? Ведь extern datetime NOW - это объявление переменной, так?
Если я чет не так понял, уж поясни, плз.

Так достаточно ясно сформулирован вопрос? Если нет, я задам еще подробней. :)

Еще раз спасибо, жду ответа.
С ув. Марк
Кафедра FMA_Sar

#48 Speeqoolyant

Speeqoolyant

    прописался

  • Пользователь
  • PipPipPip
  • 68 сообщений

Опубликовано 27 Ноябрь 2009 - 03:11

Спасибо за ответ, дружище! ;)
Поясняю (в твоем порядке)
1. В вопросе "Как мне, имея datetime получить его же, только со временем "00:00" "
подразумевается, как мне, имея переменную типа datetime получить значение этой же переменной, но со временем "00:00"
сорри за лаконичность, но мне казалось, что умным людям будет понятно...
2. про extern. Как я понимаю, extern позволяет, как минимум, (при соотв. проперти), спросить значение этой переменной у юзера. Так вот, вопрос в том, что: "добиться того, чтобы в окне ввода параметров УЖЕ СТОЯЛА текущая дата", а не "1970.01.01 00:00", которая стоит по умолчанию. Это же и есть "инициализируется нулем". А я хочу, чтоб она инициализировалась текущей датой, но юзер мог и изменить ее (перем.NOW) значение на другое. Судя по твоему ответу достаточно перед конструкцией
extern datetime NOW;
дописать присвоение этой переменной текущей даты. Но разве конструкция языка это позволяет? Ведь extern datetime NOW - это объявление переменной, так?
Если я чет не так понял, уж поясни, плз.

Так достаточно ясно сформулирован вопрос? Если нет, я задам еще подробней. :)

Еще раз спасибо, жду ответа.
[/quote]
Умные от прочих отличаются еще и тем, что получив туманный вопрос, не пытаются догадаться что имел в виду автор вопроса. Они уточняют (если только хотят ответить).
Поэтому прозвучавшую некую иронию считаю несколько неуместной. С лирикой пока все.
А по существу уточняю:
1- datetime - формат в котором представление идет в количестве секунд. А "00:00" это строковый формат. Часы и минуты. Они могут сопровождаться датой (текущей или прошлой или будущей) или
быть без нее. Так что же нужно? datetime соответствующее "00:00"? Тогда с какой датой? или что-то другое?
2- extern позволяет приостановив работающий эксперт (без выгрузки) корректировать данный параметр. И тут возникает вопрос. Тебе надо чтоб она инициализировалась 1 раз при запуске проги?
Или обновлялась каждые сутки? Или с каждым тиком? И что должно быть в ней? Дата, время, дата и время?
А лучше скажи как ты хочешь ее использовать. Тогда, может, станет понятно в каком формате ее надо получить.

#49 xMark

xMark

    записался

  • Пользователи ST test (off)
  • PipPip
  • 34 сообщений

Опубликовано 27 Ноябрь 2009 - 03:42

Умные от прочих отличаются еще и тем, что получив туманный вопрос, не пытаются догадаться что имел в виду автор вопроса. Они уточняют (если только хотят ответить).
Поэтому прозвучавшую некую иронию считаю несколько неуместной. С лирикой пока все.
А по существу уточняю:
1- datetime - формат в котором представление идет в количестве секунд. А "00:00" это строковый формат. Часы и минуты. Они могут сопровождаться датой (текущей или прошлой или будущей) или
быть без нее. Так что же нужно? datetime соответствующее "00:00"? Тогда с какой датой? или что-то другое?
2- extern позволяет приостановив работающий эксперт (без выгрузки) корректировать данный параметр. И тут возникает вопрос. Тебе надо чтоб она инициализировалась 1 раз при запуске проги?
Или обновлялась каждые сутки? Или с каждым тиком? И что должно быть в ней? Дата, время, дата и время?
А лучше скажи как ты хочешь ее использовать. Тогда, может, станет понятно в каком формате ее надо получить.


Ок, без лирики.
1. Есть перем. datetime, в которой лежит значение (наприм. "27.11.2009 17:33")
вопрос. Есть ли функция, передав которой знач. этой переменной ("27.11.2009 17:33") я получу только дату ("27.11.2009 00:00")?
Если функции нет (я ее не нашел), то как это сделать?
2. в скрипте написано:

#property show_inputs
extern datetime NOW;

соответственно, при выполнении скрипта открывается окно, в котором на странице "Входные параметры" есть эта переменная (NOW) и ее значение (0 = "1970.01.01 00:00")
вопрос. Как сделать так, чтобы в этом окне значение стояло не "1970.01.01 00:00", а текущая дата+"00:00"

Уф... все.

Подробнее (грамотнее) я уже не смогу :)
Неужели и так вопрос не достаточно четко сформулирован?

Спасибо, жду ответа
С ув. Марк
Кафедра FMA_Sar

#50 Speeqoolyant

Speeqoolyant

    прописался

  • Пользователь
  • PipPipPip
  • 68 сообщений

Опубликовано 27 Ноябрь 2009 - 08:07

Дружище xMark! Плохо у тебя с грамотностью (в отношении MQL4).
Не может в перем. datetime лежать значение string (наприм. "27.11.2009 17:33"). Данные д.б. преобразованы в соотв-й тип.
Но направление мысли понял.
Касательно п.2. Что-то я не пойму, скрипт или советник?
Скрипт выполняется один раз в момент запуска. И если в нем в усл-ях выполнения дата, отличная от текущей, то он ничего не будет делать.
Советник висит пока его принудительно не отключишь (разный форс-мажор не считается).
Далее, если у тебя исполняемый (ex4), то простым путем модернизировать его не получится. Если исходник (mq4), то надо добавить код.
Но опять не пойму, дата инициируется один раз в момент запуска? Или переписывается при смене даты?
Для справки: - запуск это когда садишь советника или скрипт на график,
- старт происходит с каждым тиком.
Все-таки надо иметь общий язык для общения.
PS. В ПРОГРАММИРОВАНИИ ЧУВСТВА ЮМОРА НЕ СУЩЕСТВУЕТ !!!
PPS. Сейчас что-нибудь насочиняю.

#51 Speeqoolyant

Speeqoolyant

    прописался

  • Пользователь
  • PipPipPip
  • 68 сообщений

Опубликовано 27 Ноябрь 2009 - 08:48

2 xMark.
Получай скрипт, делающий п.1.

//+------------------------------------------------------------------+
//| Ответ xMark-у п_1.mq4 |
//| Speeqoolyant. |
//| speeqoolyant@rambler.ru |
//+------------------------------------------------------------------+
#property copyright "Speeqoolyant."
#property link "speeqoolyant@rambler.ru"

int start()
{
string Data="27.11.2009 17:33";
int den=86400;
double time=StrToTime(Data),
Sys_den=time/den;
time=MathFloor(Sys_den)*den;
string Rezultat=TimeToStr(time,TIME_DATE|TIME_MINUTES);
Comment("\n"," Исходная дата ",Data,"\n","Нужная дата ",Rezultat);
Sleep(20000);Comment("");
return(0);
}
Понятно, что коммент это демонстрация преобразования (как доказательство)
в соответствии с поставленной задачей.

Относительно п.2 конкретизируй задачу в соответствии с предыдущим постом.

Сообщение изменено: Speeqoolyant, 27 Ноябрь 2009 - 08:57 .


#52 dancer

dancer

    прописался

  • Пользователи ST test (off)
  • PipPipPip
  • 59 сообщений

Опубликовано 20 Март 2010 - 12:41

Подскажите,
есть ли в MQL4 функция поиска выделенного объекта?
Т.е. если по объекту, например вертикальная линия, щёлкнуть левой кнопкой 2 раза,
то после щёлчка по нему правой повляется контекстное меню, в котором можно выбрать свойства этой линии...

Так вот можно ли программно определить этот именно выделенный объект, а потом программно определить его свойства
и потом в программе использовать эти свойства.

Это можно использовать, например,
- скрипт: в выделенной фибе, чтобы поменять число уровней в ней, установить только коррективные или импульсные
- скрипт: между двумя выделенными вертикальными линиями
(т.е. задать таким образом временной промежуток) построить МСФ и натянуть на него фибу
- скрипт: установить у выделенной трендовой линии другой цвет, толщину, тип линии....

В данном наборе скриптов "Автоматизация рисования картинок в MT4" http://forum.masterf...pic=12751&st=75 - спасибо его создателю ,
подобные изменения выполняются только для последнего нарисованного объекта.
Чтобы изменить цвет, толщину линии её нужно удалить и нарисовать новую (т.е. фактически создать последний объект) - лишние операции...

#53 DiTrader

DiTrader

    записался

  • Пользователи ST test (off)
  • PipPip
  • 42 сообщений

Опубликовано 04 Август 2011 - 06:19

Приветствую
Необходимо заполнить историю на МТ4. Заполнить пробелы отсутствующих баров на всей истории от месяцов до минуток. Пробелы связаные с случайным выпадением баров и отсутствующие бары за выходные дни. просто средним значением соседних баров. Желательно в виде скрипта. Запустил терминал - запустил скрипт, скрипт просканировал историю на предмет разрывов на каждом их периодов. Очень необходимо проверить свою стратегию.
ТЫ ТО, ЧТО ТЫ ДУМАЕШЬ

#54 SsseagleSss

SsseagleSss

    живет тут

  • Пользователь
  • PipPipPipPipPip
  • 106 сообщений

Опубликовано 11 Апрель 2012 - 09:19

Всем доброго дня подскажите кто знает просто и удобный скрипт для быстрого закрытия все ордеров.Если есть у кого скиньте ссылочку.Заранее спасибо.

#55 INUBOH

INUBOH

    пробегал

  • Пользователи
  • Pip
  • 1 сообщений

Опубликовано 27 Июль 2012 - 08:33

доброго времени суток! Подскажите как сделать скрипт, чтобы он независимо от цены открывал ордер на покупку со значением T/P +15 (от закупочной цены) пунктов S/L -10 (от закупочной цены) и в это же время открывал ордер на продажу со значениями T/P -10 (от закупочной цены) S/L +10 (от закупочной цены)
такое вообще можно сделать? ))

#56 Vaxo

Vaxo

    прописался

  • Пользователь
  • PipPipPip
  • 95 сообщений

Опубликовано 28 Июль 2012 - 07:56

Здравствуйте.Помогите пожалуста удалить с индикатора Skdon Trend Signal изображения баров.Только чтобы стрелки указывали.Очень нужно.Благодарю.

#57 KOT9PA

KOT9PA

    живет тут

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 747 сообщений

Опубликовано 30 Январь 2013 - 08:29

Добрый день.
нужна помощь в написании скрипта рисующего наклонный канал (в виде отрезка) и выводящего рядом с ним надпись о его длине.

double price1, price2;
datetime time1, time2;
time1= ObjectGet(name,OBJPROP_TIME1);
time2= ObjectGet(name,OBJPROP_TIME2);
price1= ObjectGet(name,OBJPROP_PRICE1);
price2= ObjectGet(name,OBJPROP_PRICE2);
double Katet1=MathAbs(time1-time2);
double Katet2=MathAbs(price1-price2);
double lin=sqrt(katet1*katet1+(katet2/3)*(katet2/3));

Ставим объект с помощью ObjectCreate. Указываем тип OBJ_TEXT. Куда надо поставить задаются координаты 1 точки. Время и цену. Остальные координаты можно поставить 0.
С помощью ObjectSetText() задать текст DoubleToStr(lin,Digits);
Так же задать цвет, размер и название шрифта.

собственно надо все это соединить в в 1 рабочий скрипт. но у меня не хватает знаний синтаксиса языка.
кто может оказать помощь в написании?

Сообщение изменено: KOT9PA, 30 Январь 2013 - 11:05 .


#58 Speeqoolyant

Speeqoolyant

    прописался

  • Пользователь
  • PipPipPip
  • 68 сообщений

Опубликовано 13 Февраль 2013 - 09:41

Добрый день.
нужна помощь в написании скрипта рисующего наклонный канал (в виде отрезка) и выводящего рядом с ним надпись о его длине.

double price1, price2;
datetime time1, time2;
time1= ObjectGet(name,OBJPROP_TIME1);
time2= ObjectGet(name,OBJPROP_TIME2);
price1= ObjectGet(name,OBJPROP_PRICE1);
price2= ObjectGet(name,OBJPROP_PRICE2);
double Katet1=MathAbs(time1-time2);
double Katet2=MathAbs(price1-price2);
double lin=sqrt(katet1*katet1+(katet2/3)*(katet2/3));

Ставим объект с помощью ObjectCreate. Указываем тип OBJ_TEXT. Куда надо поставить задаются координаты 1 точки. Время и цену. Остальные координаты можно поставить 0.
С помощью ObjectSetText() задать текст DoubleToStr(lin,Digits);
Так же задать цвет, размер и название шрифта.

собственно надо все это соединить в в 1 рабочий скрипт. но у меня не хватает знаний синтаксиса языка.
кто может оказать помощь в написании?

Первая строка понятна. Взаимно.
Канал - область между двумя линиями, как он может быть в виде отрезка?
Как мерять длину наклонного канала? В каких единицах?
Ну а дальше вообще мешанина.
Определись.

#59 KOT9PA

KOT9PA

    живет тут

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 747 сообщений

Опубликовано 14 Февраль 2013 - 12:20


Добрый день.
нужна помощь в написании скрипта рисующего наклонный канал (в виде отрезка) и выводящего рядом с ним надпись о его длине.

double price1, price2;
datetime time1, time2;
time1= ObjectGet(name,OBJPROP_TIME1);
time2= ObjectGet(name,OBJPROP_TIME2);
price1= ObjectGet(name,OBJPROP_PRICE1);
price2= ObjectGet(name,OBJPROP_PRICE2);
double Katet1=MathAbs(time1-time2);
double Katet2=MathAbs(price1-price2);
double lin=sqrt(katet1*katet1+(katet2/3)*(katet2/3));

Ставим объект с помощью ObjectCreate. Указываем тип OBJ_TEXT. Куда надо поставить задаются координаты 1 точки. Время и цену. Остальные координаты можно поставить 0.
С помощью ObjectSetText() задать текст DoubleToStr(lin,Digits);
Так же задать цвет, размер и название шрифта.

собственно надо все это соединить в в 1 рабочий скрипт. но у меня не хватает знаний синтаксиса языка.
кто может оказать помощь в написании?

Первая строка понятна. Взаимно.
Канал - область между двумя линиями, как он может быть в виде отрезка?
Как мерять длину наклонного канала? В каких единицах?
Ну а дальше вообще мешанина.
Определись.

неправильно выразился, не наклонный канал, а трендовая линия.она может быть в виде отрезка. мерить длину отрезка от начала и до конца) единицы измерения, они же координаты точек начала и конца - это время и цена, соотношение в МТ4 1 к 3, в формулах это учтено.

#60 Speeqoolyant

Speeqoolyant

    прописался

  • Пользователь
  • PipPipPip
  • 68 сообщений

Опубликовано 18 Февраль 2013 - 10:04

4 KOT9PA
" скрипта рисующего наклонный канал " -чтоб нарисовать, надо задать ему две пары координат, зачем их потом получать?
И кто задает эти координаты?
Подставляй их в "Katet1=MathAbs(time1-time2); Katet2=MathAbs(price1-price2); lin=sqrt(katet1*katet1+(katet2/3)*(katet2/3));"
В близкие координаты выводи текст.
А в чем смысл?




Посетителей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных пользователей

Рейтинг брокеров форекс: кто лидер, кто аутсайдер и почему?




Masterforex-V NordFX

Rambler's Top100

Принимаем Z-Payment