Здравствуйте программисты. Нужно написать простой код. Есть список акций московской биржи и код должен искать среди этого списка те акции которые Попали под выполнение технических условий. После того как код нашёл акцию он формирует список и этот список отправляет мне на почту.
Требуется программист для написания кода на базе сайта:
Как-то раз решил перенести свой советник с МТ4 на МТ5. И все было по началу хорошо, пока не обнаружил странное поведение в коде. При помощи записи состояния всех переменных стратегий в лог я выяснил, что некоторые условия срабатывали тогда, когда не надо. И наоборот, некоторые условия не срабатывали.
Самый простой пример:
double a = 5; double b = 10; if (a > b) { }
В любом языке программирования такое условие не выполнится. Но в MQL5 подобные условия иногда выполняются. И от чего это зависит — не понятно.
Тогда мне помогло лишь одно: я переехал с терминала МТ5 от брокера Альпари (он не хотел обновляться до свежей версии) на оригинальный МТ5 последней (на тот момент) версии. И это помогло, подобные баги исчезли. Менять что либо в коде было бесполезно.
И вот недавно я решился сделать заказ для знакомого. По началу все шло хорошо, но вот захотелось добавить асинхронное открытие и закрытие сделок. Казалось бы, что может быть проще?
Опустим такую деталь, что в очень удобном МТ5 нет специальной переменной в запросе, чтобы можно было однозначно судить о том, ответ на какой именно запрос открыть позицию пришел от сервера.
Знаки и символы правят миром, а не слово и закон — Конфуций
Всем привет!
Для импорта в гул таблицы использую формулу, которую узнал из Смарт-лаба. Это стало отправной точкой, но первой проблемой стал импорт данных вида 36В или 124М. Для этого тоже нашел решение, но не могу сделать корректный вывод значений типа (941.74М), т.е. значение отрицательное и нужно, чтобы было -941,74М. С учетом конечной потребности нужно, чтобы было -941 740 000.
Формула громоздкая, но упростить не проблема, главная задача сейчас найти решение, чтобы она не убивала знак «минус»
=IFERROR(REGEXEXTRACT((SUBSTITUTE(index(IMPORTHTML(«www.marketwatch.com/investing/stock/xpev/financials/income/quarter»;«table»;5);40;2);".";","));"[\d\+\,\d+]+")*10^IFERROR(VLOOKUP(REGEXEXTRACT(UPPER((SUBSTITUTE(index(IMPORTHTML(«www.marketwatch.com/investing/stock/xpev/financials/income/quarter»;«table»;5);40;2);".";",")));«K|M|B»); {«K»\3;«M»\6;«B»\9};2;FALSE);1);(SUBSTITUTE(index(IMPORTHTML(«www.marketwatch.com/investing/stock/xpev/financials/income/quarter»;«table»;5);40;2);".";",")))
короче говоря, ПАМАГИТЕ! Уже не могу терпеть!
P.S. Изменить формат не предлагать, это самое первое, что попробовал
P.P.S. Плюсаните, если не в падлу
Очень простая, многопоточная серверная и клиентская библиотека Named Pipe, реализованная с использованием C++11. Проект был проверен на компиляторе mingw 7.3.0 x64. Папка code_blocks содержит примеры для IDE Code::Blocks. Не забудьте в проектах указать свой компилятор, иначе проект не соберется. Сделал либу только сегодня, так что в ней могут быть ошибочки.
#include <iostream> #include "named-pipe-server.hpp" int main() { /* в конструкторе сервера можно также задать размер буфера */ SimpleNamedPipe::NamedPipeServer server("my_server"); /* обработчики событий */ server.on_open = [&](SimpleNamedPipe::NamedPipeServer::Connection* connection) { std::cout << "open, handle: " << connection->get_handle() << std::endl; }; server.on_message = [&](SimpleNamedPipe::NamedPipeServer::Connection* connection, const std::string &in_message) { /* обрабатываем входящие сообщения */ std::cout << "message " << in_message << ", handle: " << connection->get_handle() << std::endl; connection->send("ok"); }; server.on_close = [&](SimpleNamedPipe::NamedPipeServer::Connection* connection) { std::cout << "close, handle: " << connection->get_handle() << std::endl; }; server.on_error = [&](SimpleNamedPipe::NamedPipeServer::Connection* connection, const std::error_code &ec) { std::cout << "error, handle: " << connection->get_handle() << ", what " << ec.value() << std::endl; }; /* запускаем сервер */ server.start(); std::system("pause"); /* останавливаем сервер * (деструктор класса сам выполнит остановку, вызывать не обязательно) */ server.stop(); std::cout << "close program" << std::endl; return EXIT_SUCCESS; }