sviter 0 Share Posted February 14, 2019 Кто знает какую нибудь библиотеку dll для отправки е-mail через терминал? Quote Link to post Share on other sites
ZeleBoba 662 Share Posted February 14, 2019 10 минут назад, sviter сказал: Кто знает какую нибудь библиотеку dll для отправки е-mail через терминал? А чем Вас не устраивает функция SendMail? Quote Лучше маленький профит, чем большие рога. Link to post Share on other sites
sviter 0 Share Posted February 14, 2019 В настройках нужно прописывать настройки серверов и т.п....а мне надо через dll что бы изначально все было прописано и сразу работало! Quote Link to post Share on other sites
sviter 0 Share Posted February 14, 2019 Ищу библиотеку что то типа https://www.fxblue.com/appstore/u17/...r-guide#toc1.2Что бы встроить ее в код и ненадо было вводить данные в настройках терминала!Ее скачать не могу, ибо не получается скачать(((( Quote Link to post Share on other sites
Ugar68 372 Share Posted February 14, 2019 2 часа назад, sviter сказал: Кто знает какую нибудь библиотеку dll для отправки е-mail через терминал? Я то же когда то озадачивался проблемой отправки письма не через терминал. По другой причине. Мне надо было отправлять уведомление о потере связи терминалом. А если терминал потерял связь, он не может отправить письмо своими средствами. Я нашёл программы отправки письма через командную строку. Написал пакетный файл, а программа на MQL запускала его с помощью функции ShellExecuteW из Shell32.dll которая есть в винде. Quote Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку. Чужие программы не переделываю. Link to post Share on other sites
torgf 0 Share Posted February 14, 2019 10 часов назад, Ugar68 сказал: Поправка: АС строится по медианной цене. Но сути это не меняет. Не поняла, что делать то. Если бы в советнике нужно было, то контроля открытия нового бара было бы достаточно. Открывается бар красным , потом становится зелёным цветом. Неужели нет возможности узнать что бар открылся красной гистограммой АС? Quote Link to post Share on other sites
Ugar68 372 Share Posted February 14, 2019 10 минут назад, torgf сказал: Не поняла, что делать то. Если бы в советнике нужно было, то контроля открытия нового бара было бы достаточно. Открывается бар красным , потом становится зелёным цветом. Неужели нет возможности узнать что бар открылся красной гистограммой АС? Только на текущем баре можно зафиксировать показание в момент открытия бара. На истории не получится без переделки АС. В момент открытия бара Open=Close=High=Low. Когда бар закрылся это совсем не так. Так вот на истории все бары уже закрыты и если индикатор использует Close, High или Low, то его показания будет совсем не такими как в момент открытия бара. АС использует медианную цену (High+Low)/2. Единственный способ видеть на истории показания в момент открытия бара, это переделать АС на работу по ценам открытия. Там 2 SMA. В них задана цена. Вызывать потом по iCustom. Quote Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку. Чужие программы не переделываю. Link to post Share on other sites
torgf 0 Share Posted February 14, 2019 11 минут назад, Ugar68 сказал: Спасибо, как жаль что мир неидеален) Надеюсь, так покажет то что нужно. ExtMacdBuffer[i]=iMA(NULL,0,PERIOD_FAST,0,MODE_SMA,PRICE_OPEN,i)- iMA(NULL,0,PERIOD_SLOW,0,MODE_SMA,PRICE_OPEN,i); Quote Link to post Share on other sites
DVargo 210 Share Posted February 14, 2019 8 часов назад, Ugar68 сказал: Я то же когда то озадачивался проблемой отправки письма не через терминал. По другой причине. Мне надо было отправлять уведомление о потере связи терминалом. А если терминал потерял связь, он не может отправить письмо своими средствами. Я нашёл программы отправки письма через командную строку. Написал пакетный файл, а программа на MQL запускала его с помощью функции ShellExecuteW из Shell32.dll которая есть в винде. А иметь 2 терминала от двух разных брокеров не пробовали? Есть еще CRM всякие, основное дело которых вести учет документов, и спамить в почту. Как вариант можно открыть почту в браузере и отправлять через него. Так же к многим почтовым сервисам есть апи. Quote А не пойти ли бы вам Link to post Share on other sites
DVargo 210 Share Posted February 14, 2019 10 часов назад, sviter сказал: В настройках нужно прописывать настройки серверов и т.п....а мне надо через dll что бы изначально все было прописано и сразу работало! Закажите во фрилансе вам напишут советник открывающий вкладку почта и автоматически ее заполняющую. dll может умереть при выходе новых обновлений, а ее автор получить наследство и поменять сферу деятельности, ну или еще что-нибудь. Чужой длл может слать и не только вам. ибо не известно что там в коде. Quote А не пойти ли бы вам Link to post Share on other sites
Ugar68 372 Share Posted February 15, 2019 8 часов назад, DVargo сказал: А иметь 2 терминала от двух разных брокеров не пробовали? Есть еще CRM всякие, основное дело которых вести учет документов, и спамить в почту. Как вариант можно открыть почту в браузере и отправлять через него. Так же к многим почтовым сервисам есть апи. Держать терминал от другого брокера только для отправки письма, или тот же CRM это не рациональное расходование ресурсов vps. Уж лучше тогда свой почтовый сервер поставить. Программки, отправляющие письмо из командной строки, обычно весят килобайты, редко до пары мегабайт. Запускаются только в момент когда надо отправить письмо. Хотя я допускаю что в серверной винде есть какая то длл с функциями отправки. А в w10 можно наверное, припахать, встроенную мыльницу. Но опять же держать такого монстра постоянно запущенным, как то не нормально. Quote Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку. Чужие программы не переделываю. Link to post Share on other sites
DVargo 210 Share Posted February 19, 2019 15.02.2019 в 10:25, Ugar68 сказал: Держать терминал от другого брокера только для отправки письма, или тот же CRM это не рациональное расходование ресурсов vps. Уж лучше тогда свой почтовый сервер поставить. Программки, отправляющие письмо из командной строки, обычно весят килобайты, редко до пары мегабайт... Обычно у трейдеров по несколько терминалов крутится на VPS. Спящий терминал ест до 40 МБ. Обычно на VPS крутится до 5-6 терминалов. Самый короткий и легкий код на МКЛ. Запускать 2 терминал можно программно при отсутствии связи. CRM бывают разные - на питоне, на ПХП. и могут быть легкими. Это может быть скрипт запускаемый раз в сколько то и проверяющий наличие сообщения в папке. А может быть и скрипт запускаемый из вне - аналог вашей программы. Вы тело письма формируете напрямую из МКЛ или передаете через файл? или отправляете какое-то стандартное сообщение? Quote А не пойти ли бы вам Link to post Share on other sites
AntFX 6,474 Share Posted February 19, 2019 1 минуту назад, DVargo сказал: Спящий терминал ест до 40 МБ. Если в него напихать десяток графиков с лимитом по 10000000 баров в каждом то может и по 500 мб есть, ага ) Quote 1 Link to post Share on other sites
DVargo 210 Share Posted February 19, 2019 А мозг на что? зачем 100500 баров пихать? И чел явно каждый мегабайт считает, он явно все по оптимуму или минимуму делает. Quote А не пойти ли бы вам Link to post Share on other sites
AntFX 6,474 Share Posted February 19, 2019 3 минуты назад, DVargo сказал: И чел явно каждый мегабайт считает, он явно все по оптимуму или минимуму делает. Тогда откуда 40? Вот у меня терминал висит, один график открыт без лимита по барам, памяти ест стабильно меньше 20 Quote 1 Link to post Share on other sites
DVargo 210 Share Posted February 19, 2019 Я низ не ограничивал. Я написал до. А 20 или 40 - я уже считаю не принципиально, это не 200. Quote А не пойти ли бы вам Link to post Share on other sites
Ugar68 372 Share Posted February 19, 2019 1 час назад, DVargo сказал: Вы тело письма формируете напрямую из МКЛ или передаете через файл? или отправляете какое-то стандартное сообщение? Тема и текст письма формируются в индикаторе на mql. Потом он запускает cmd файл с ними в параметрах. Хотя конечно, в индикаторе можно было сформировать всю командную строку и обойтись без cmd, но мне так удобнее. Ведь так я могу использовать разные программы, отправляющие письмо из командной строки, не переписывая индикатор. Короче, так универсальнее. Quote Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку. Чужие программы не переделываю. Link to post Share on other sites
sviter 0 Share Posted February 23, 2019 Может кто знает как сделать скрипт массовой рассылки email пользователям? Или в mql4 возможно только одному пользователю отсылать email? Это возможно вообще? Quote Link to post Share on other sites
Ugar68 372 Share Posted February 23, 2019 2 часа назад, sviter сказал: Может кто знает как сделать скрипт массовой рассылки email пользователям? Или в mql4 возможно только одному пользователю отсылать email? Это возможно вообще? В mql отправка по настройкам в терминале. Но возможно отправлять сторонними программами. То есть, программа на mql запускает стороннюю программу с помощmю dll, а она рассылает. Quote Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку. Чужие программы не переделываю. Link to post Share on other sites
sviter 0 Share Posted March 2, 2019 Здравствуйте! Подскажите как сделать следующее: У меня в роботе стоит мартингейл с усреднением! Каждые 50 пунктов открывается новый ордер с большим лотом и тэйкпрофит подвигается!!! Со временем столкнулся с такой проблемой, что ордера задваиваются..... тоесть открывается 0.10 ордер, через 50 пунктов, 0.20, потом 0.40, потом 0.80 и вот тут начинаются касяки, что открывается еще один 0.80 каким то макаром, причем не через 50 пунктов, а когда ему вздумается!!! в основном замечено срабатывает всегда на 4-ом калене, иногда бывало на 3-ем!!! не понимаю что за фигня!!! гляньте плиз.... if(CountTrades() == 0) { if(AdxHis > AdxHis1) { TP = NormalizeDouble(Ask + takeprofit * _Point, _Digits); ticket = OrderSend(_Symbol, OP_BUY, lot, Ask, slippage, 0, TP, comment, Magic, 0, clrGreen); //покупка if(ticket > 0) { Print("Ордер на BUY успешно открыт! "); return; } } if(AdxHis < AdxHis1) { TP = NormalizeDouble(Bid - takeprofit * _Point, _Digits); ticket = OrderSend(_Symbol, OP_SELL, lot, Bid, slippage, 0, TP, comment, Magic, 0, clrRed); //продажа if(ticket > 0) { Print("Ордер на SELL успешно открыт! "); return; } } } else { int ordertype = FindLastOrderType(); //Функция типа ордера if(ordertype == OP_BUY) { price = FindLastOrderPrice(OP_BUY); //Функция последней цены if(count > 0 && count < koleno && Ask <= price - shag * _Point) { lastlot = FindLastLot(OP_BUY); lastlot = NormalizeDouble(lastlot * Multiplayer, 2); ticket = OrderSend(_Symbol, OP_BUY, lastlot, Ask, slippage, 0, 0, comment2, Magic,0, clrGreen); if(ticket < 1) Print("Ошибка открытия ордера на покупку"); ModifyOrders(OP_BUY); } } if(ordertype == OP_SELL) { price = FindLastOrderPrice(OP_SELL); //Функция последней цены if(count > 0 && count < koleno && Bid >= price + shag * _Point) { lastlot = FindLastLot(OP_SELL); lastlot = NormalizeDouble(lastlot * Multiplayer, 2); ticket = OrderSend(_Symbol, OP_SELL, lastlot, Bid, slippage, 0, 0, comment2, Magic,0, clrRed); if(ticket < 1) Print("Ошибка открытия ордера на продажу"); ModifyOrders(OP_SELL); } } } Quote Link to post Share on other sites
Ugar68 372 Share Posted March 3, 2019 13 часов назад, sviter сказал: Здравствуйте! Подскажите как сделать следующее: У меня в роботе стоит мартингейл с усреднением! Каждые 50 пунктов открывается новый ордер с большим лотом и тэйкпрофит подвигается!!! Со временем столкнулся с такой проблемой, что ордера задваиваются..... тоесть открывается 0.10 ордер, через 50 пунктов, 0.20, потом 0.40, потом 0.80 и вот тут начинаются касяки, что открывается еще один 0.80 каким то макаром, причем не через 50 пунктов, а когда ему вздумается!!! в основном замечено срабатывает всегда на 4-ом калене, иногда бывало на 3-ем!!! не понимаю что за фигня!!! гляньте плиз.... В данном случае очень важна качественная работа FindLastOrderPrice() Quote Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку. Чужие программы не переделываю. Link to post Share on other sites
sviter 0 Share Posted March 3, 2019 11 часов назад, Ugar68 сказал: В данном случае очень важна качественная работа FindLastOrderPrice() у меня так: double FindLastOrderPrice(int otype) { int oldticket; ticket = 0; double oldopenprice = 0; for(int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) { if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) { if(OrderSymbol() == _Symbol && OrderMagicNumber() == Magic && OrderType() == otype) { oldticket = OrderTicket(); if(oldticket > ticket) { ticket = oldticket; oldopenprice = OrderOpenPrice(); } } } } return(oldopenprice); } Quote Link to post Share on other sites
Ugar68 372 Share Posted March 4, 2019 Это и называется написано как нибудь, что бы отвязаться. OrderSelect выбирает ордер и возвращает true в случае успеха. В этой функции ничего не предусмотрено, что если она вернёт false. То есть ордер есть, но по какой то причине не выбран. Эта функция его просто пропустит. А теперь подумайте, что будет если эта функция не выбрала последний открытый ордер. Кроме того, функция ориентируется по тикету, а вообще то, в данной ситуации, должна интересовать цена открытия. То есть лучше искать самый нижний Buy и самый верхний Sell. Quote Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку. Чужие программы не переделываю. Link to post Share on other sites
sviter 0 Share Posted March 4, 2019 Можете помочь? ато я что то вообще не понял где косяк! Quote Link to post Share on other sites
ZeleBoba 662 Share Posted March 19, 2019 Подскажите пожалуйста, что-то туплю есть функция в которую в качестве аргумента может передаваться массив, но не всегда. как внутри функции проверить, что произошло обращение с массивом, а не без него ? // возможные варианты вызова int arrA[10]; вариант 1: func( NULL ); вариант 2: func( arrA ); // функция с параметром-массивом void func( int &arr[] ) { if( <???> == NULL ) { // действие 1 } else { // действие 2 } } Quote Лучше маленький профит, чем большие рога. Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.