Ответ
 
Опции темы
Старый 24.11.2013, 11:33   #1981 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от eevviill Посмотреть сообщение
Может через то что разными версиями(билдами) копилятора скопилировано?
Да не! Везде 509 билд у меня. Оказывется, все еще интереснее: сидишь так, жмешь "Компилировать" длина ех4 меняется
Можно в тотал командере смотреть, можно в проводнике.
Просто одной кнопочкой так "щелк" - посмотрел, другое значение! От 19200 до 20800 меняется. Гы!
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (24.11.2013)
Старый 24.11.2013, 14:49   #1982 (permalink)
Заблокирован
За второе место в конкурсе 

 
Аватар для eevviill
 
Регистрация: 30.07.2009
Сообщений: 5,474
Репутация: 9022
eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill
Сказал(а) спасибо: 13,680
Поблагодарили 9,022 раз(а) в 3,179 сообщениях
Поинты: 1105
Отправить сообщение для eevviill с помощью Skype™
Кто знает куда официально писать(желательно на форуме) метаквотам предложения по модернизации mql4?

Я вот что предлагаю.
PHP код:
OrdersTotal(int magic=все,string symbol=любой,int type=любой

Последний раз редактировалось eevviill; 24.11.2013 в 14:53.
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 24.11.2013, 14:54   #1983 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от eevviill Посмотреть сообщение
Кто знает куда официально писать(желательно на форуме) метаквотам предложения по модернизации mql4?

Я вот что предлагаю.
PHP код:
OrdersTotal(int magic=все,string symbol=любой
дык, на mql4.com, больше некуда!Там метакватовские представители бывают хотя бы и есть ветки по всяким модернизациям. Кстати, они 529 версию запилили "с новым компилятором", не успел ты

Там некий модератор Renat отвечает как представитель МТ

Последний раз редактировалось ansol; 24.11.2013 в 14:56.
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (24.11.2013)
Старый 25.11.2013, 15:24   #1984 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Как определить в MQL4, есть ли данный символ в окне "Обзор рынка"? Или открыто ли окно с таким символом? Ну, скажем, экзотика какая-то, причем, если окно, то обязательно с ТФ нужным, а не любое. Лучше, конечно, "Обзор рынка" - там можно убрать все символы, у которых нет открытых окон одним кликом.
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 25.11.2013, 15:42   #1985 (permalink)
Заблокирован
За второе место в конкурсе 

 
Аватар для eevviill
 
Регистрация: 30.07.2009
Сообщений: 5,474
Репутация: 9022
eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill
Сказал(а) спасибо: 13,680
Поблагодарили 9,022 раз(а) в 3,179 сообщениях
Поинты: 1105
Отправить сообщение для eevviill с помощью Skype™
Сообщение от ansol Посмотреть сообщение
Как определить в MQL4, есть ли данный символ в окне "Обзор рынка"? Или открыто ли окно с таким символом? Ну, скажем, экзотика какая-то, причем, если окно, то обязательно с ТФ нужным, а не любое. Лучше, конечно, "Обзор рынка" - там можно убрать все символы, у которых нет открытых окон одним кликом.
1) MarketInfo("EURUSD__j",MODE_BID)
Если нету в обзоре то 0
2) WindowHandle();
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
ansol (25.11.2013)
Старый 25.11.2013, 16:14   #1986 (permalink)
Активный участник
 
Аватар для _SERG_
 
Регистрация: 21.07.2009
Сообщений: 242
Репутация: 75
_SERG_
Сказал(а) спасибо: 7
Поблагодарили 75 раз(а) в 61 сообщениях
Поинты: 284
Сообщение от ansol Посмотреть сообщение
Как определить в MQL4, есть ли данный символ в окне "Обзор рынка"? Или открыто ли окно с таким символом? Ну, скажем, экзотика какая-то, причем, если окно, то обязательно с ТФ нужным, а не любое. Лучше, конечно, "Обзор рынка" - там можно убрать все символы, у которых нет открытых окон одним кликом.
я так.

Скрытый текст

//+------------------------------------------------------------------+
//| SYMBOLS_LIST.mq4 |
//| |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""

// Скрипт для проверки работоспособности.
string Currencies[] = {"AED", "AUD", "BHD", "BRL", "CAD", "CHF", "CNY",
"CYP", "CZK", "DKK", "DZD", "EEK", "EGP", "EUR",
"GBP", "HKD", "HRK", "HUF", "IDR", "ILS", "INR",
"IQD", "IRR", "ISK", "JOD", "JPY", "KRW", "KWD",
"LBP", "LTL", "LVL", "LYD", "MAD", "MXN", "MYR",
"NOK", "NZD", "OMR", "PHP", "PLN", "QAR", "RON",
"RUB", "SAR", "SEK", "SGD", "SKK", "SYP", "THB",
"TND", "TRY", "TWD", "USD", "VEB", "XAG", "XAU",
"YER", "ZAR", "_", "DJI", "DXY", "ES", "GC",
"NQ", "QG", "QM", "SI", "#"};
string Symbols[];
string MSG ="";

int start()
//int SYMBOLS_LIST()
{
int colpars = ( CreateSymbolList());
/*
for(int x = colpars - 1 ; x >= 0; x--)
{
Print( Symbols[x] );
MSG = MSG +" "+ x + " "+Symbols[x] + "\n ";
}
*/
// MSG = MSG + " " + "\n ";
for(int y = 0 ; y < colpars ; y++)
{
Print( Symbols[y] );
MSG = MSG + Symbols[y] + "|" ;
for (int j = 1; j < 34 ;j++)
{
if (j == 3) continue;
if (j == 4) continue;
if (j == 5) {MSG = MSG + TimeToStr(MarketInfo( Symbols[y], j ),TIME_DATE|TIME_SECONDS) + "|"; continue;}
if (j == 6) continue;
if (j == 7) continue;
if (j == 8) continue;
// if (j == 9) {MSG = MSG + TimeToStr(MarketInfo( Symbols[y], j ),TIME_DATE|TIME_SECONDS) + "|"; continue;}
if (j == 20) {MSG = MSG + TimeToStr(MarketInfo( Symbols[y], j ),TIME_DATE|TIME_SECONDS) + "|"; continue;}
if (j == 21) {MSG = MSG + TimeToStr(MarketInfo( Symbols[y], j ),TIME_DATE|TIME_SECONDS) + "|"; continue;}
MSG = MSG + DoubleToStr(MarketInfo( Symbols[y], j ),Digits) + "|";
}
MSG = MSG + "\n ";
MSG = MSG + "\n ";

}

// MSG = MSG + "Пары:|";
/*
for(int y = 0 ; y < colpars ; y++)
{
// Print( Symbols[y] );
MSG = MSG + Symbols[y]+ "|" ;
}
MSG = MSG + "\n ";
*/
/*
for (int k = 0 ; k < colpars ; k++)
{
for (int j = 1;j < 34 ;j++)
{
// MSG = MSG + DoubleToStr(MarketInfo( Symbols[k], j ),Digits) + "|";
MSG = MSG + DoubleToStr(MarketInfo( Symbols[k], j ),(Symbols[k], mode_Digits)) + "|";
}
MSG = MSG + "\n ";
}
*/
Comment ( MSG );
}
// [End SYMBOLS_LIST()]





int CreateSymbolList()
{
int SymbolCount = 0;
int CurrencyCount = ArrayRange(Currencies, 0);
int Loop, SubLoop;
string TempSymbol;

for(Loop = 0; Loop < CurrencyCount; Loop++)
{
for(SubLoop = 0; SubLoop < CurrencyCount; SubLoop++)
{
TempSymbol = Currencies[Loop] + Currencies[SubLoop];
if(MarketInfo(TempSymbol, MODE_BID) > 0)
{
ArrayResize(Symbols, SymbolCount + 1);
Symbols[SymbolCount] = TempSymbol;
SymbolCount++;
}
}
}
return(SymbolCount);
}
[свернуть]

Последний раз редактировалось NSerega; 25.11.2013 в 16:36.
_SERG_ на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill (25.11.2013), Viko2000 (24.05.2015)
Старый 25.11.2013, 16:56   #1987 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от eevviill Посмотреть сообщение
1) MarketInfo("EURUSD__j",MODE_BID)
Если нету в обзоре то 0
Я б сказал, что если 0, то нету в обзоре.
MarketInfo() во многих случаях может вернуть правильные величины и для символов, которых в обзоре нет. Особенно это касается пар, у которых одна из валют равна валюте депозита.
Читайте файл symbols.sel, он точно содержит список из обзора и ничего больше.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (25.11.2013)
Старый 25.11.2013, 17:14   #1988 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от qqmber Посмотреть сообщение
Я б сказал, что если 0, то нету в обзоре.
MarketInfo() во многих случаях может вернуть правильные величины и для символов, которых в обзоре нет. Особенно это касается пар, у которых одна из валют равна валюте депозита.
Читайте файл symbols.sel, он точно содержит список из обзора и ничего больше.
Ну вот!
Мне надо для скрипта, а тут хрень какую-то с чтением файлов разводить...
Проверим MODE_BID и хэндл и хватит. Я просто про хендл как-то не подумал, что если окна нет, то там тупо ноль должен быть.
А уж для советника-то можно постараться и обеспечить все нужные ему окна.
Вот еще бы в этот хендл как-то текст выводить по человечески, а не посимвольно, было бы ваще здорово.
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (25.11.2013)
Старый 25.11.2013, 17:24   #1989 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от ansol Посмотреть сообщение
Ну вот!
Мне надо для скрипта, а тут хрень какую-то с чтением файлов разводить...
Проверим MODE_BID и хэндл и хватит. Я просто про хендл как-то не подумал, что если окна нет, то там тупо ноль должен быть.
А уж для советника-то можно постараться и обеспечить все нужные ему окна.
Вот еще бы в этот хендл как-то текст выводить по человечески, а не посимвольно, было бы ваще здорово.
Если хендл нашелся, дальше можно и не проверять. Ну разве что за вычетом крайних случаев, когда окно еще есть, а символа уже нет, для скрипта неактуально.
Насчет "посимвольно" - запусти туда скрипт/индюк, и посылай ему строки, пусть выводит.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 25.11.2013, 17:34   #1990 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от qqmber Посмотреть сообщение
Если хендл нашелся, дальше можно и не проверять. Ну разве что за вычетом крайних случаев, когда окно еще есть, а символа уже нет, для скрипта неактуально.
Насчет "посимвольно" - запусти туда скрипт/индюк, и посылай ему строки, пусть выводит.
Поставим вопрос по-другому: как запихать индюк в заданный хендл? Заодно и хендл(окно это в смысле) на передний план вытащить?
Так-то я могу напечатать в окне советника, увидеть, к чему надпись и открыть нужное окно, конечно.
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 26.11.2013, 06:27   #1991 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,525
Репутация: 3644
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,113
Поблагодарили 3,648 раз(а) в 1,469 сообщениях
Поинты: 2007
Поищи в недокументированных функциях.

Пример функции:
Код:
#import "user32.dll"
int PostMessageA(int hWnd,int Msg,int wParam,int lParam);
int GetForegroundWindow();
#import
#define WM_COMMAND 0x0111

void wCommands(int com)
{
switch(com)
{
case 1: PostMessageA(GetForegroundWindow(), WM_COMMAND, 33309, 0); return; //Обзор рынка | или 33160
}

Старт в скрипте или в эксперте:

int start()
{
wCommands(1);
}
Лично я не проверял работу этой строки, что произойдёт не знаю, но переключение ТФ, смена валюты в текущем окне, нажатие кнопки "Советники" работает на ура.

Последний раз редактировалось AlexeyVik; 26.11.2013 в 06:35.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
ansol (26.11.2013), qqmber (27.11.2013)
Старый 28.11.2013, 12:15   #1992 (permalink)
Заблокирован
 
Аватар для Маруся2014
 
Регистрация: 12.11.2013
Сообщений: 35
Репутация: 13
Маруся2014
Сказал(а) спасибо: 0
Поблагодарили 12 раз(а) в 11 сообщениях
Поинты: 22
Здравствуйте мужички программисты. Хотела раскрасить фон индикатора (oscillator). Выше 0 зеленый, а ниже 0 красный. Вы не подскажите какой код надо вставить?
Маруся2014 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 28.11.2013, 15:08   #1993 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,525
Репутация: 3644
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,113
Поблагодарили 3,648 раз(а) в 1,469 сообщениях
Поинты: 2007
Надо разделить на 2 буфера и поставить условие если выше 0 буфер1 = ... иначе если ниже 0 буфер2 = ...
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (29.11.2013)
Старый 28.11.2013, 21:27   #1994 (permalink)
Заблокирован
 
Аватар для Маруся2014
 
Регистрация: 12.11.2013
Сообщений: 35
Репутация: 13
Маруся2014
Сказал(а) спасибо: 0
Поблагодарили 12 раз(а) в 11 сообщениях
Поинты: 22
А нельзя без буферов обойтись? А что именно надо разделить? Я как раз это и не понимаю к чему это самое привязать?
Маруся2014 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 29.11.2013, 05:28   #1995 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,525
Репутация: 3644
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,113
Поблагодарили 3,648 раз(а) в 1,469 сообщениях
Поинты: 2007
Если ты не знаешь что такое буфер то в таком случае легче сделать чем объяснить.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (29.11.2013)
Старый 29.11.2013, 11:28   #1996 (permalink)
Заблокирован
 
Аватар для Маруся2014
 
Регистрация: 12.11.2013
Сообщений: 35
Репутация: 13
Маруся2014
Сказал(а) спасибо: 0
Поблагодарили 12 раз(а) в 11 сообщениях
Поинты: 22
Нет я знаю что такое буфер. Но! - у меня нет не одного свободного. Все заняты. Надо как-то по другому.
Маруся2014 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 29.11.2013, 13:45   #1997 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,254
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1274
Отправить сообщение для Ugar с помощью ICQ
Сообщение от Телочка Посмотреть сообщение
Нет я знаю что такое буфер. Но! - у меня нет не одного свободного. Все заняты. Надо как-то по другому.
Буфер может иметь только один цвет. На до 2 цвета, придётся использовать 2 буфера.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (29.11.2013)
Старый 29.11.2013, 14:43   #1998 (permalink)
Заблокирован
За второе место в конкурсе 

 
Аватар для eevviill
 
Регистрация: 30.07.2009
Сообщений: 5,474
Репутация: 9022
eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill
Сказал(а) спасибо: 13,680
Поблагодарили 9,022 раз(а) в 3,179 сообщениях
Поинты: 1105
Отправить сообщение для eevviill с помощью Skype™
Сообщение от Телочка Посмотреть сообщение
А нельзя без буферов обойтись? А что именно надо разделить? Я как раз это и не понимаю к чему это самое привязать?
Ну типа

PHP код:
buf1[];
buf2[];


///////////////////////////////////////////////
void start()
{
for(
int h=Bars-IndicatorCounted();h>=0;h--)
{
double osci=iCustom(...,h);
if(
osci<0buf1[h]=osci[h];
if(
osci>0buf2[h]=osci[h];
}


}
//end start 
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 29.11.2013, 17:21   #1999 (permalink)
Заблокирован
 
Аватар для Маруся2014
 
Регистрация: 12.11.2013
Сообщений: 35
Репутация: 13
Маруся2014
Сказал(а) спасибо: 0
Поблагодарили 12 раз(а) в 11 сообщениях
Поинты: 22
Я реально говорю, что все восемь буферов заняты! Можно к примеру это сделать как-то через ObjectCreate или что-то подобное.
Маруся2014 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 29.11.2013, 17:58   #2000 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,525
Репутация: 3644
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,113
Поблагодарили 3,648 раз(а) в 1,469 сообщениях
Поинты: 2007
О-о-о, это круто.
Ну какой вопрос такой и ответ.

Конечно можно обойтись и объектами, но надо-ли??? Распространённая ошибка неопытных программистов использовать буферы там где можно обойтись переменными или обычным массивом, а буферы использовать исключительно для отрисовки показаний индикатора.
Может я угадал?
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (29.11.2013)
Ответ

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 10:15. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
SEO by vBSEO