//+------------------------------------------------------------------+ //| exporta_ordens_e_ofertas_2_sql.mq5 | //| Copyright 2020, OS Corp. | //| http://www.os.org | //+------------------------------------------------------------------+ #property copyright "Copyright 2020, OS Corp." #property link "http://www.os.org" #property version "1.001" #include #include #include #include #include CAccountInfo m_account ; CHistoryOrderInfo m_order ; CDealInfo m_deal ; string m_strAspa = "'"; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart(){ datetime from = D'2020.07.03'; datetime to = D'2020.07.04'; //TimeCurrent(); Print(from,to); // data inicial. farah parte do nome do arquivo... string strFrom = TimeToString(from,TIME_DATE); StringReplace(strFrom,".",""); // data final. farah parte do nome do arquivo... string strTo = TimeToString(to,TIME_DATE); StringReplace(strTo,".",""); // obtendo o primeiro nome da corretora (farah parte do nome do arquivo)... string company = m_account.Company(); company = StringSubstr(company,0,StringFind(company," ")); //company = // obtendo o primeiro nome do trademode (deve ser "Demo" ou "Real" e farah parte do nome do arquivo)... string trademode = m_account.TradeModeDescription(); trademode = StringSubstr(trademode,0,StringFind(trademode," ")); string nameSqlFile = strFrom + "-" + strTo + "-" + company + "-" + trademode + "-ordens-ofertas.sql"; int sqlFile = openSqlFile(nameSqlFile); // 1. gravamos as ordens no arquivo sql... readOrdersAndWriteSqlFile(sqlFile,from,to); // 2. gravamos as ofertas (deals)... readDealsAndWriteSqlFile(sqlFile,from,to); // 3. gravamos os comandos sql que transferem os comentarios para colunas especificas... writeSqlUpdateDeals(sqlFile); writeSqlUpdateOrdens(sqlFile); // 4. fechamos o arquivo... closeSqlFile(sqlFile); // 5. montando arquivo de posicoes... osc_minion_trade_estatistica m_trade_estatistica; m_trade_estatistica.print_posicoes(from, to); } //+------------------------------------------------------------------+ void readOrdersAndWriteSqlFile(int sqlFile, datetime from, datetime to){ string sqlCommand; string strVirgula = "," ; Print(":-| Obtendo historico de ordens..."); HistorySelect(from,to); uint totalOrders=HistoryOrdersTotal(); //quantidade de ordens no historico... Print(":-| Processando ordens do historico..."); for(uint i=0;i