Ваши вопросы по языку MQL4

Nata_FX

Активный участник
Вопросик мастерам MQL4 - как можно написать в коде открытие ордера на открытии бара или закрытии???:question:

Есть ли по времени разница, если открыть ордер на Close[1] или на Open[0]???

Как можно открыть ордер в прошлом? Close[1] это свеча в прошлом, у вас есть машина времени?
 

Milord

Местный знаток
Наталья, ты точно заметила!))

Как можно открыть ордер в прошлом? Close[1] это свеча в прошлом, у вас есть машина времени?

Что то я не подумал про это:)
Хотя сути это не меняет, сейчас Сlose[0], а потом станет Close[1],вопрос решен в принципе, или ты хочешь предложить свой вариант кода по открытию ордера на открытии(закрытии) бара[0]?:question:
 

Чико

Почетный гражданин
Nata_FX

Сообщение от Milord Вопросик мастерам MQL4 - как можно написать в коде открытие ордера на открытии бара или закрытии???:question:

Есть ли по времени разница, если открыть ордер на Close[1] или на Open[0]???

Как можно открыть ордер в прошлом? Close[1] это свеча в прошлом, у вас есть машина времени?
Ну,строго говоря,речь шла не про открытие ордера в прошлом,а-по Close[1]..)):)
 

реношник

Почетный гражданин
допустим есть небольшой набор цифровых данных, он содержится в текстовом файле, который открывает блокнот (система WIN XP),
нужно подключить этот файл к сове и перекинуть данные во внутренний массив, как это можно написать в коде, если можно код попроще??? ЗАРАНЕЕ СПАСИБО!

Предложите плиз, еще свои варианты, как набор данных закинуть во внутренний массив совы???

посмотри тут _http://articles.mql4.com/ru/680
 
Последнее редактирование модератором:

реношник

Почетный гражданин
Есть ли по времени разница, если открыть ордер на Close[1] или на Open[0]???

Зачем вам цены если вы хотите привязать событие ко времени ?

Вопросик мастерам MQL4 - как можно написать в коде открытие ордера на открытии бара или закрытии???:question:

Как вариант....
PHP:
   int m,s;
   m=Time[0]+Period()*60-CurTime();
   s=m/60;
   m=(m-(m/60))/60;

/* 
m - сколько осталось минут до закрытия свечи
s - сколько осталось секунд до закрытия свечи
*/

я использовал такую конструкцию для открытия ордера на любом временнОм участке свечи...
 
Последнее редактирование:

Milord

Местный знаток
Не совсем вас понял?)

Зачем вам цены если вы хотите привязать событие ко времени ?
Не совсем вас понял???

Кстати нашел в языке, как мне кажется дублирующие функции, так ли это???

double Close[]
Массив-таймсерия, содержащий цены закрытия каждого бара текущего графика.

double iClose( string symbol, int timeframe, int shift)
Возвращает значение цены закрытия указанного параметром shift бара с соответствующего графика (symbol, timeframe).

double
Open[]
Массив-таймсерия, содержащий цены открытия каждого бара текущего графика

double iOpen( string symbol, int timeframe, int shift)
Возвращает значение цены открытия указанного параметром shift бара с соответствующего графика (symbol, timeframe).
И так далее.................
 
Последнее редактирование:

реношник

Почетный гражданин
Как можно открыть ордер в прошлом? Close[1] это свеча в прошлом, у вас есть машина времени?

Элементарно....
Close[N] - советник откроет ОТЛОЖЕННЫЙ ордер... естественно нужно проверить условие открытия типа отложенного ордера....

Кстати нашел в языке, как мне кажется дублирующие функции, так ли это???
double Close[]
Массив-таймсерия, содержащий цены закрытия каждого бара текущего графика.
double iClose( string symbol, int timeframe, int shift)
Возвращает значение цены закрытия указанного параметром shift бара с соответствующего графика (symbol, timeframe).

double
Open[]
Массив-таймсерия, содержащий цены открытия каждого бара текущего графика
double iOpen( string symbol, int timeframe, int shift)
Возвращает значение цены открытия указанного параметром shift бара с соответствующего графика (symbol, timeframe).
И так далее.................

double это ФОРМАТ данных в котором функция возвращает значение, в данном случае цену..............

Не совсем вас понял???

Вы спросили " как можно написать в коде открытие ордера на открытии бара или закрытии??? " открытие бара и закрытие бара это события происходящие во времени..... Почему вы упорно пытаетесь привязаться к цене ????

То, что я предлагаю выглядит примерно так....
повторюсь

PHP:
   int m,s; 
   m=Time[0]+Period()*60-CurTime(); 
   s=m/60; 
   m=(m-(m/60))/60; 

/*  
m - сколько осталось минут до закрытия свечи 
s - сколько осталось секунд до закрытия свечи 
*/

далее делаете условие :

если m=0 - открываем ордер (рыночный)
в этом случае советник будет открывать ордер на ПОСЛЕДНЕЙ МИНУТЕ формирования свечи....

для ордеров на открытии свечи нужно учитывать уже таймфрейм
например для М30
если m=29 - открываем ордер

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

Milord

Местный знаток
Так к чему еще привязываться на форексе?))

Элементарно....
Close[N] - советник откроет ОТЛОЖЕННЫЙ ордер... естественно нужно проверить условие открытия типа отложенного ордера....

double это ФОРМАТ данных в котором функция возвращает значение, в данном случае цену..............
Вы спросили " как можно написать в коде открытие ордера на открытии бара или закрытии??? " открытие бара и закрытие бара это события происходящие во времени..... Почему вы упорно пытаетесь привязаться к цене ????

или вы меня не поняли или я вас, или оба)))
Про формат данных double,int,string я понимаю, я то спросил о другом....
Close[] Массив-таймсерия, содержащий цены закрытия каждого бара текущего графика.

iClose( string symbol, int timeframe, int shift)
Возвращает значение цены закрытия указанного параметром shift бара с соответствующего графика (symbol, timeframe).
Они дублируют друг друга? различие только в сдвиге и тФ

На счет моей привязки к цене?))на форексе 2 весчи - откуда идут все прибыли, лоси, и ТС)) это цена и время!)ИМХО!)
Или я вас снова непонял???:question:
 

реношник

Почетный гражданин
или вы меня не поняли или я вас, или оба)))
Про формат данных double,int,string я понимаю, я то спросил о другом....
Close[] Массив-таймсерия, содержащий цены закрытия каждого бара текущего графика.

iClose( string symbol, int timeframe, int shift)
Возвращает значение цены закрытия указанного параметром shift бара с соответствующего графика (symbol, timeframe).
Они дублируют друг друга? различие только в сдвиге и тФ

Да, это я тормознул с пониманием вопроса, просто буквав многа... :-:)-)
double Close[] - используют только для текущего графика
double iClose(string symbol, int timeframe, int shift) - функция аналогична предыдущей, только универсальнее...

На счет моей привязки к цене?))на форексе 2 весчи - откуда идут все прибыли, лоси, и ТС)) это цена и время!)ИМХО!)
Или я вас снова непонял???:question:

Это я ужен точно не понял, хоть и букв меньше... :question:

Я просто показал конкретный пример как реализовать открытие рыночного ордера в начале формирования свечи и на её завершении....

Кстати. вот тут https://fortrader.org/mql/foreks-agent.html
мой первый советник Agent_Fx_v07 там по правилам стратегии нужно было принимать решение и открывать ордер за 20 секунд до завершения формирования свечи....
 
Последнее редактирование:

Rapitvina

Интересующийся
Доброго времени суток господин программист!!! У меня такой вопрос можно "научить" советника считать отработанные циклы. Под циклами я понимаю закрытие всех ордеров по профиту. Советник на основе мартингейла. К примеру указать советнику в настройках отработать 2 цикла после чего он отключится или перестанет выставлять новые ордера.
 

progo

Гуру форума
Здравствуйте уважаемые программисты! Вопрос у меня такой: какая обычно строка кода отвечает за комментарии? хочу чтобы в комментариях не указывалось название советника.
 

Чико

Почетный гражданин
Нет,конечно..))Просто восьмую позицию в строке (выделено красным в примере из справочника) надо изменить..

OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-25*Point,Ask+25*Point,"My order #"+counter,16384,0,Green);
 

budazp

Активный участник
Христос Воскрес! Подскажите плиз кто
по кодам в теме! Мммм... на примере
стохастика, нужно чтоб он расчет вел
не за количество баров а с заданой
временной точки(условно с 00:00
часов вчерашнего дня)
 
Верх