Я прошу прощения за дублирование вопроса, но я не могу выполнять следующие примеры пока не разберусь с этим.
Помогите пожалуйста разобраться.
Написал простой скрипт на открытие ордера (из учебника MQL4).
В данном примере код приведен для инструментов с 4-мя знаками.
У меня счет в компании у которой 5 знаков после точки.
Напишите пожалуйста как правильно переделать код для 5-ти знаков, и почему при запуске скрипта выдает ошибку 4109 (торговля не разрешена)?
int start() // Спец. функция start()
{ // Открытие BUYOrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-150*Point,Bid+150*Point);
Alert (GetLastError());
return; // Выход из start()
}
Только вот вовсе необязательно, что это будет работать. Нужно размеры стопов и тейков проверять на допустимость по стоплевелу вашего ДЦ
Извиняйте. если вопрос поднимался ранее, но листать 540 стр.
Такая проблема. В МТ4 ордера с одинаковой ценой перекрываются, и виден только один ордер. Есть ли в МТ4 настройки, чтобы, допустим, два ордера на графике отображались рядом, не перекрывая друг друга. Если таких настроек нет, то можно ли создать таблицу либо график с такой функцией?
Извиняйте. если вопрос поднимался ранее, но листать 540 стр.
Такая проблема. В МТ4 ордера с одинаковой ценой перекрываются, и виден только один ордер. Есть ли в МТ4 настройки, чтобы, допустим, два ордера на графике отображались рядом, не перекрывая друг друга. Если таких настроек нет, то можно ли создать таблицу либо график с такой функцией?
Ctrl+t и внизу появляется таблица всех открытых поз, если переключиться на вкладку "Торговля".
Доброго времени суток... Вопрос по функциям FileIsEnding и FileIsLineEnding. Для того, чтобы понять как работают функции FileIsEnding и FileIsLineEnding я написал такой скрипт:
После записи числа в файл, если посмотрите в шестнадцатиричной форме, будет такая запись:
00000000: 31 2E 33 35 38 34 0D 0A | | 1.3584..
Каждая буква или цифра занимает 1 байт или 8 бит, последние два символа называются - перевод строки и возврат каретки, доплняются автоматически, поэтому размер файла 8 байт, а не 6.
Прогоните ваш немного измененный скрипт и заметьте как передвигается курсор (специально сделал перебор больше размера файла, чтобы вы увидели, где возникает ошибка.
int start() //функция start
{ //начало startdouble Timestart=GetTickCount(); //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения эксперта string name="Копия Запись чисел в файл.csv"; //имя создаваемого файлаbool h; //переменная: значение функции FileIsEndingbool h_l; //переменная: значение функции FileIsLineEndingint error; //переменная: ошибкаint handle=FileOpen(name,FILE_CSV|FILE_WRITE,';'); //открываем заданный файл n записываем туда данныеint запись=FileWrite(handle,DoubleToStr(1.3584,4)); //записываем цены OHLC в файл csv (в преобразованном виде, т.е в виде текста)FileClose(handle); //закрываем файл//---------------------------------------------------------------------------------------- 2 -
handle=FileOpen(name,FILE_CSV|FILE_READ,';'); //открываем заданный файлint size=FileSize(handle); //вычисляем размер заданного файлаPrint("Размер файла ",name," составил ",size," байт");
for(int i=0;i<=size;i++)
{
GetLastError();
bool pos=FileSeek(handle,i,SEEK_SET); //смещаем от начала вправо указатель файлаint pos1=FileTell(handle);
double чтение=FileReadNumber(handle); //считываем число из текущей позиции (уже измененной функцией FileSeek) файлового указателя
h=FileIsEnding(handle); //устанавливаем текущее значение переменной h
h_l=FileIsLineEnding(handle); //устанавливаем текущее значение переменной h_l
error=GetLastError(); //значение ошибки, производимой функцией FileIsEndingif(error!=0)Alert("Текущая ошибка ",error); //если код текущей ошибки не равен 0, то получаем номер текущей ошибки//----------------------------------------------------------------------------------------- 3 -Print(" Функция FileSeek вернула: ",pos,
" Указатель находится в позиции - ",pos1,
" Функция FileReadNumber(handle) вернула: ",чтение);//печать сообщения
}
FileClose(handle); //закрываем файл//----------------------------------------------------------------------------------------- 4 -return(0); //выход из start
} //конец start//-------------------------------------- КОНЕЦ START -------------------------------------- 5 -
Необходимо при отладке индикатора вывести через Print массив значений цен и времени, полученных от определённых баров по шифту машки.
price1 = iMA(Symbol(),i_maTF,i_maPeriod,i_maShiftByPrice,i_maMethod,i_maPrice,i_shiftBarsBack1+i); // Цена в точке А
price2 = iMA(Symbol(),i_maTF,i_maPeriod,i_maShiftByPrice,i_maMethod,i_maPrice,i_shiftBarsBack2+i); // Цена в точке В
time1 = iTime(Symbol(),Period(),i_shiftBarsBack1 + i - 1); // Время в точке А
time2 = iTime(Symbol(),Period(),i_shiftBarsBack2 + i - 1); // Время в точке В
Всё это я получаю есс-но внутри оператора:
for(i = limit - 1;i > 0;i--)
Далее я загоняю значения цен и времени в массивы, чтобы с ними работать дальше:
varsPrice1[i] = price1; // Массив цен в точке А
varsPrice2[i] = price2; // Массив цен в точке В
varsTime1[i] = time1; // Массив времени в точке А
varsTime2[i] = time2; // Массив времени в точке В
Пробую вывести на печать того, что уже есть сразу же после этого:
Здесь явно видно, что значения цен как массива varsTime1[i] и varsTime2[i], так и просто цены полученной от машки time1 и time2 и всегда 0. Что нет так?
Приветик жителям форума!!!! Парни у меня вопрос - кто знает в каком файле сохраняются назначенные на скрипты "Горячие клавиши" ??? Хочу сохранить этот файлик с назначенными уже "Горячими клавишами" что бы каждый раз после переустановки терминала,если вдруг появляется такая необходимость, не назначать эти клавиши по-новой..., а только файлик перекинул и всё... Заранее всех благодарю .
Необходимо при отладке индикатора вывести через Print массив значений цен и времени, полученных от определённых баров по шифту машки.
Всё это я получаю есс-но внутри оператора:
Далее я загоняю значения цен и времени в массивы, чтобы с ними работать дальше:
Пробую вывести на печать того, что уже есть сразу же после этого:
На печать в журнал экспертов выводится вот что:
Здесь явно видно, что значения цен как массива varsTime1[i] и varsTime2[i], так и просто цены полученной от машки time1 и time2 и всегда 0. Что нет так?
Я прошу прощения за дублирование вопроса, но я не могу выполнять следующие примеры пока не разберусь с этим.
Помогите пожалуйста разобраться.
Написал простой скрипт на открытие ордера (из учебника MQL4).
В данном примере код приведен для инструментов с 4-мя знаками.
У меня счет в компании у которой 5 знаков после точки.
Напишите пожалуйста как правильно переделать код для 5-ти знаков, и почему при запуске скрипта выдает ошибку 4109 (торговля не разрешена)?
Только вот вовсе необязательно, что это будет работать. Нужно размеры стопов и тейков проверять на допустимость по стоплевелу вашего ДЦ
Только вот вовсе необязательно, что это будет работать. Нужно размеры стопов и тейков проверять на допустимость по стоплевелу вашего ДЦ
Большое спасибо!
Необходимо было разрешить советнику торговать)
Доброго времени суток всем.
Извиняйте. если вопрос поднимался ранее, но листать 540 стр.
Такая проблема. В МТ4 ордера с одинаковой ценой перекрываются, и виден только один ордер. Есть ли в МТ4 настройки, чтобы, допустим, два ордера на графике отображались рядом, не перекрывая друг друга. Если таких настроек нет, то можно ли создать таблицу либо график с такой функцией?
Доброго времени суток всем.
Извиняйте. если вопрос поднимался ранее, но листать 540 стр.
Такая проблема. В МТ4 ордера с одинаковой ценой перекрываются, и виден только один ордер. Есть ли в МТ4 настройки, чтобы, допустим, два ордера на графике отображались рядом, не перекрывая друг друга. Если таких настроек нет, то можно ли создать таблицу либо график с такой функцией?
Выручите пожалуйста - пишу советника - в качестве подложки использовал код;
if (рисуемПодложку){
for(int x=0;x<7;x++)
for(int y=0;y<29;y++)
{
ObjectCreate("A_Fon"+x+y,OBJ_LABEL,0,0,0,0,0);
ObjectSet("A_Fon"+x+y, OBJPROP_CORNER, позицияОкна); // позицияОкна // Txt_Location
ObjectSet("A_Fon"+x+y,OBJPROP_XDISTANCE,x*20+5);
ObjectSet("A_Fon"+x+y,OBJPROP_YDISTANCE,y*20+9);
ObjectSetText("A_Fon"+x+y,CharToStr(110),26,"Wingdings",цветПодложки);//Red);
}
if (рисуемПодложку==False)
{
for( int posp=1000;posp>0;posp--)
{
ObjectDelete("A_Fon"+posp);
ObjectDelete("A_Fon0"+posp);
ObjectDelete("A_Fon00");
}
}
}
В результате получил геморой , так как отрисовывается огромное колличество объектов на графике.
Подскажите пожалуйста нормальный код для установки подложки под текст.
Доброго времени суток... Вопрос по функциям FileIsEnding и FileIsLineEnding. Для того, чтобы понять как работают функции FileIsEnding и FileIsLineEnding я написал такой скрипт:
После записи числа в файл, если посмотрите в шестнадцатиричной форме, будет такая запись:
00000000: 31 2E 33 35 38 34 0D 0A | | 1.3584..
Каждая буква или цифра занимает 1 байт или 8 бит, последние два символа называются - перевод строки и возврат каретки, доплняются автоматически, поэтому размер файла 8 байт, а не 6.
Прогоните ваш немного измененный скрипт и заметьте как передвигается курсор (специально сделал перебор больше размера файла, чтобы вы увидели, где возникает ошибка.
Необходимо при отладке индикатора вывести через Print массив значений цен и времени, полученных от определённых баров по шифту машки.
Всё это я получаю есс-но внутри оператора:
Далее я загоняю значения цен и времени в массивы, чтобы с ними работать дальше:
Пробую вывести на печать того, что уже есть сразу же после этого:
На печать в журнал экспертов выводится вот что:
Здесь явно видно, что значения цен как массива varsTime1[i] и varsTime2[i], так и просто цены полученной от машки time1 и time2 и всегда 0. Что нет так?
Вы бы весь код привели. А то не хочется додумывать то, что для Вас ясно.
Понимаю что додумывать не хочется, но может хоть намекнете, если проблема Вам ясна?
Парни у меня вопрос - кто знает в каком файле сохраняются назначенные на скрипты "Горячие клавиши" ??? Хочу сохранить этот файлик с назначенными уже "Горячими клавишами" что бы каждый раз после переустановки терминала,если вдруг появляется такая необходимость, не назначать эти клавиши по-новой..., а только файлик перекинул и всё...
Заранее всех благодарю .
Необходимо при отладке индикатора вывести через Print массив значений цен и времени, полученных от определённых баров по шифту машки.
Всё это я получаю есс-но внутри оператора:
Далее я загоняю значения цен и времени в массивы, чтобы с ними работать дальше:
Пробую вывести на печать того, что уже есть сразу же после этого:
На печать в журнал экспертов выводится вот что:
Здесь явно видно, что значения цен как массива varsTime1[i] и varsTime2[i], так и просто цены полученной от машки time1 и time2 и всегда 0. Что нет так?
i_maTF == Period() ??????,
i_maPeriod принимает разумное значение???
Ну может быть с i_maShiftByPrice что-нибудь не так???
Точнее трудно сказать.