Обучение языку MQL4 под MetaTrader 4📌

От xbms, 13 апреля, 2013 в Уголок Программиста

#2776
romses здесь мы не подскажем, ибо не знаем когда вызывается функция трала. Вы по свечам тралите или как? Три ордера в убыток, а ещё 5 штук в прибыль? или всего 3? Вы-бы хоть лог показали...
#2777

Сделай проверку на модификацию, он же у тебя меняет в не зависимости от того в нужную сторону идёт цена или нет! ;)

#2778


Сделай проверку на модификацию, он же у тебя меняет в не зависимости от того в нужную сторону идёт цена или нет! ;)

У romses в коде модификация не от цены, а от уровня БУ, которая меняется только с открытием/закрытием ордеров...
#2779


Изучайте
_http://docs.mql4.com/ru/chart_operations/windowscreenshot
_http://docs.mql4.com/ru/chart_operations/chartscreenshot
_http://docs.mql4.com/ru/common/webrequest
_http://docs.mql4.com/ru/common/sendftp



Черт, я ничего не понимаю в mql4, там просто темный лес для меня. Можно ли как то по простому? Что сделать нужно?
#2780

На этот раз не устанавливает указатель на начало файла.

int SetFilePointer (string lpFileName, int lDistanceToMove=0, int lpDistanceToMoveHigh=0, int dwMoveMethod=0);

result=SetFilePointer(handle,0,0,0);

ПыСы: через CreateFileW заработало, с пробелами, без проблем. Теперь беда другая:)

#2781

Вы создали тему в разделе программирования и удивляетесь ответам где надо самостоятельно попытаться найти решение.

#2782


На этот раз не устанавливает указатель на начало файла.

int SetFilePointer (string lpFileName, int lDistanceToMove=0, int lpDistanceToMoveHigh=0, int dwMoveMethod=0);

result=SetFilePointer(handle,0,0,0);

ПыСы: через CreateFileW заработало, с пробелами, без проблем. Теперь беда другая:)


Рекомендую ознакомиться с описанием результатов работы функции SetFilePointer и сделать выводы
_https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa365541%28v=vs.85%29.aspx
#2783


romses здесь мы не подскажем, ибо не знаем когда вызывается функция трала. Вы по свечам тралите или как? Три ордера в убыток, а ещё 5 штук в прибыль? или всего 3? Вы-бы хоть лог показали...



Фунцкия трала вызывается каждую новую свечку, на м1 соответсвенно каждую минуту, так же как и функция открытия оредров.

В 90 процентов случаях тралл срабатывает правильно и часть ордеров закрывает в минус, а часть в плюс и в итоге общий плюс.
Но иногда она сдвигает ТП так что общий итог минус хоть часть оредров тоже может закрыть в плюс.

Я не могу понять как он может такое делать?
#2784


Вы создали тему в разделе программирования и удивляетесь ответам где надо самостоятельно попытаться найти решение.


Где же найти совет от людей компетентнее, чем тут? Я рад найти решение сам, но не имею ресурсов выучить для этого язык и что делать с кодами по ссылкам, которые Вы мне рекомендовали, не представляю. Укажите хотя бы что мне нужно сделать
#2785



romses здесь мы не подскажем, ибо не знаем когда вызывается функция трала. Вы по свечам тралите или как? Три ордера в убыток, а ещё 5 штук в прибыль? или всего 3? Вы-бы хоть лог показали...



Фунцкия трала вызывается каждую новую свечку, на м1 соответсвенно каждую минуту, так же как и функция открытия оредров.

В 90 процентов случаях тралл срабатывает правильно и часть ордеров закрывает в минус, а часть в плюс и в итоге общий плюс.
Но иногда она сдвигает ТП так что общий итог минус хоть часть оредров тоже может закрыть в плюс.

Я не могу понять как он может такое делать?

Вы не думали что средне арифметическое взвешенное может давать ТР в минус?
#2786


Вы не думали что средне арифметическое взвешенное может давать ТР в минус?

и про спрэд не забываем. Вы рассчитываете уровень БУ по ценам открытия, поэтому нужно спрэд учитывать...
#2787

Как среднее арифметическое с учетом лотности плюс ТП может давать минус?

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

А что если добавить проверку в случае оредров на BUY ТП BID и отправлять на пересчет?

Изменено 19 ноября, 2015 пользователем romses

#2788

А как Вы почту собираетесь смотреть - комп вытаскивать или через мобилу? если мобилой, то можно сам терминал туда сунуть и наслаждаться графиком в любой момент и комп вытаскивать только когда сигнал нарисуется...

#2789


Как среднее арифметическое с учетом лотности плюс ТП может давать минус?

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

А что если добавить проверку в случае оредров на BUY ТП BID и отправлять на пересчет?


1. Мы не ведаем о Вашем размере ТП - мы предполагаем...
2. У Вас расчётный уровень БУ всегда в минусе, а не в "0", значит в размер ТП нужно закладывать спрэд на момент закрытия.
3. Вы имеете в виду расчётный уровень ТП? Ну тогда Бай ТП
#2790


Как среднее арифметическое с учетом лотности плюс ТП может давать минус?


Очень просто если вес одного из дальних от ТР ордеров большем чем у остальных.
#2791


А как Вы почту собираетесь смотреть - комп вытаскивать или через мобилу? если мобилой, то можно сам терминал туда сунуть и наслаждаться графиком в любой момент и комп вытаскивать только когда сигнал нарисуется...


Нужны именно скрины моих шаблонов, терминал в мобиле не канает. Просматривать и с планшета, и с телефона. Я вообще пока не вижу другого способа дисциплинированно торговать без такой отправки, для меня нереально доставать копм в нужное время, всегда это неудобно, сигналы пропускаются, раздражение, психологическое давление растет - скрины на почту реально спасение и получится охватить необходимое мне кол-во пар, но как это сделать?..

Изменено 19 ноября, 2015 пользователем Ленивый Лис

#2792
Ленивый Лис, если вы не программист и вам нужен скриншот экрана, где не стоит ваш или чей-то бот (куда скриншот и отсылку на почту можно было бы встроить), то у вас прямая НЕ форекс задача - по определенному временному графику, задаваемому с точностью до минут, скриншотить экран и отсылать вам на почту.
Забудьте по ТФ, свечи и всю форекс атрибутику - вам нужны скрины экрана раз в сколько-то минут по какому-то графику и отсылка скрина на почту.
А что на экране, хоть порнуха - то программе-скриншотеру по барабану.

Такие вещи должны уметь делать бесплатные программы-скриншотеры из инета.
Я серьезно говорю - погуглите, на 90% уверен, что нужное вам в данном случае решение в инете готовое есть.


Вариант 2. у вас прямо в терминале есть вкладка Библиотека. Там смотрели нужную вам программу?


Вариант 3. _https://www.mql5.com/ru/code/mt4/scripts Здесь смотрели?


А вообще-то, насколько понимаю, вы всех ввели в недоумение, написав не в тот раздел - вам-то нужен раздел ПОИСКА.
Это соседний топик.

А здесь иногда дорабатывают имеющихся индюков, скриптов - чего у вас нет.
Вот все и в недоумении чего вообще мужик пристал...

Изменено 19 ноября, 2015 пользователем Старик

#2793
Старик делать скрины может много программ, например эта, а вот отсылать скрин по почте - дело не такое лёгкое, да и не особо нужное...
Если есть ВПС поставить туда терминал с шаблонами и с мобилы подключиться через виртуальный рабочий стол. Я так и сделал и полноценный терминал под рукой и торговать с мобилы можно... Можно и к домашнему компу с мобилы подключиться, но тут я не подскажу как настраивать...
#2794

:) интересно, а просто в терминале это сделать нельзя?
Скриншотить можно всё, настройки на почту тоже вроде в терминале - вопрос можно ли настроить это делать по временному графику...

#2795

Фух, нашёл сову которая отправляет скрины на почту. Сделал-таки работу за топикстартера.
Вот ссылка

#2796

Не могу побороть чтение из файла.
Вот этой функцией я открываю файл:

int CreateFileW (string lpFileName,int dwDesiredAccess=1,int dwShareMode=0x00000001,int lpSecurityAttributes=NULL, int dwCreationDisposition=3, int dwFlagsAndAttributes=0x80, int hTemplateFile=NULL);
А читаю не понял какой...
1 вариант:
int ReadFileEx (int hFile, string lpBuffer, int nNumberOfBytesToRead, int lpOverlapped, int lpCompletionRoutine);
Выдает ошибку Access violation read to 0x00000008
2 вариант
int ReadFile (int hFile, string lpBuffer, int nNumberOfBytesToRead, int lpNumberOfBytesRead, int lpOverlapped);
Возвращает единицу, тоесть тру.

Вот кусок кода:

Спойлер

if (FileExists(filepath)==-1)
{
Print("Такого файла не существует ",filepath);

return (-1);
}
int handle=CreateFileW (filepath);
if(handle {
Print("Ошибка открытия файла ",filepath);
return (-1);
}
result=SetFilePointer(handle);
if(result {
Print("Ошибка установки указателя" );
return (-1);
}

int q=GetFileSize(handle,0); //Определил размер файла в байтах
result=ReadFileEx (handle,s,1,0,0); //прочитал, в s залили первый байт
Print("result ReadFile=",result); //вернуло единичку

int i=0;
int d=0;
for(i=0;i {
result=ReadFileEx (handle,s,1,0,0); // возвращает единичку
Print("result=",result);
if(s=="" || StringFind(s,",")>0) continue; //а тут вот обнаруживается, что s="", тобишь ничего. Может быть она должна быть не стринг? Или не переменная? В описании написано, что в нее возвращается дата из файла как раз, если я правильно понял.
Print("s=",s);
Print("d=",d);
lines=s; //сохраним все переменные из файла в массив для последующего поиска и выборки

Print("result=",result);
ArrayResize(lines,i+1);
}



Возможно ошибка глупая, просто глаз уже замылен...

Изменено 19 ноября, 2015 пользователем Silentspec

#2797

и почему меня не удивляет, что работу за Ленивого Лиса сделал кто-то другой... :d

0ll очередной поклон!

#2798

Что такое "s"? как описал? mql строки не всегда можно передать напрямую в апи-функции, надо читать мсдн.
Если читать по-байтово, то явно напрямую не прочтёшь - у тебя сэт-файл в юникоде, а он 2 байта / символ.
Сайлент, реально, поверь - работать со строками через апи - геморрой, навык нужен. Я сам не великий мастер, но еле продрался через апи, чтоб строку в юникоде в терминал из инета получить через сокет.

#2799

string s="";
пока как то так.
мсдн читаю, да вот не могу вникнуть, чем должна быть s.
s это string lpBuffer в функции ReadFile
Спасибо, 0ll, действительно, сет файл в юникоде, а читаем мы байты...

Изменено 19 ноября, 2015 пользователем Silentspec

#2800


Забудьте по ТФ, свечи и всю форекс атрибутику - вам нужны скрины экрана раз в сколько-то минут по какому-то графику и отсылка скрина на почту.

Вариант 2. у вас прямо в терминале есть вкладка Библиотека. Там смотрели нужную вам программу?

А вообще-то, насколько понимаю, вы всех ввели в недоумение, написав не в тот раздел - вам-то нужен раздел ПОИСКА.



Вариант со скриншотом экрана, разумеется, не подходит
В библиотеке, конечно, нету такого


Старик делать скрины может много программ, например _www.mql5.com/ru/code/11704, а вот отсылать скрин по почте - дело не такое лёгкое, да и не особо нужное...
Если есть ВПС поставить туда терминал с шаблонами и с мобилы подключиться через виртуальный рабочий стол. Я так и сделал и полноценный терминал под рукой и торговать с мобилы можно...


Этот советник делает то, что нужно, спасибо, но нужно еще чтобы скрины отправлялись с ВПС на почту.
В этом есть ряд плюсов, а в подключении к ВПС минусов, которые лично для меня сильно значительны.
Как бы все это организовать...

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



Добавлено: 19-11-2015 15:14:51


Фух, нашёл сову которая отправляет скрины на почту. Сделал-таки работу за топикстартера.
Вот _https://www.mql5.com/ru/code/10352


Не врубаюсь, как настроить :(
Не вводится нужный каталог в настройках и вообще, что куда...Прога для старой версии МТ. Не пинайте, объясните...

Изменено 19 ноября, 2015 пользователем Ленивый Лис

Для публикации сообщений создайте учётную запись или авторизуйтесь

Перейти к списку тем
Форум · 2.0.20260627.0025