[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 163
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Olá a todos...
Você poderia me dizer como construir o caminho para os arquivos de história do MetaTrader 4? Como "c:{\i1}fileiras de programas {\i}metatrader 4\i}alpari-clássico"?
Muito obrigado, Sergeev, acho que o encontrei...
Print("Terminal path: ", TerminalPath() + "\\history\\" + AccountServer() + "\\");
esta linha sai o caminho correto, mesmo que o editor esteja errado nas cores. Você provavelmente deveria escrever o código no bloco de notas. Estava brincando.
Boa noite a todos!
No tutorial de Sergey Kovalev, eu encontrei um especialista - parada de trilha. Eu o copiei no MetaEditor, compilei-o, mas o programa não funciona. Por favor, informe qual é a razão. Talvez eu esteja fazendo algo errado.
está escrito em mql?)
apenas me dê o código.
//-------------------------------------------------------------------- // modifystoploss.mq4 // Concebido para ser usado como exemplo no tutorial MQL4. //-------------------------------------------------------------------- external int Tral_Stop=10; // Dist. pursuit //--------------------------------------------------------------- 1 -- int start() // Special function start { string Symb=Symbol(); // Fin. ferramenta //--------------------------------------------------------------- 2 -- for(int i=1; i<=OrdersTotal(); i++) // Loop de pedido { if (OrderSelect(i-1,SELECT_BY_POS)==true) // Se houver uma próxima { // Análise do pedido: int Tip=OrderType(); // Tipo de pedido if(OrderSymbol()!=Symb||Tip>1)continue;// Não nosso pedido duplo SL=OrderStopLoss(); // SL do pedido selecionado //------------------------------------------------------ 3 -- while(true) // Loop de modificação { double TS=Tral_Stop; // Valor inicial em Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// Dist. mínima se (TS<Min_Dist) // Se houver menos do que o valor permitido para o pedido, então o pedido será executado. TS=Min_Dist; // Novo valor de TS //--------------------------------------------------- 4 -- bool Modificar=falso; // Não atribuído para modificar interruptor(Dica) // Por tipo de pedido { caixa 0 : // Pedido de compra se (NormalizeDouble(SL,Digits)< // Se menor desejar. NormalizeDouble(Bid-TS*Point,Dígitos)) { SL=Bid-TS*Point; // depois modificar a string Text="Buy "; // text for Buy Modify=true; // assigned to modify } break; // exit if case 1 : // Sell order if (NormalizeDouble(SL,Dígitos)> // if above requested. NormalizeDouble(Ask+TS*Point,Digits)|| NormalizeDouble(SL,Digits)==0)//ou igual a zero { SL=Ask+TS*Point; // depois modificá-lo Text="Sell "; // Modificar=verdadeiro; // atribuído para modificar } } // Fim da chave se (Modificar==falso) // se não modificar quebra; // sair enquanto //--------------------------------------------------- 5 -- duplo TP =OrderTakeProfit(); // TP de ordem selecionada. preço duplo =OrderOpenPrice(); // Preço do pedido selecionado. int Ticket=OrderTicket(); // Número do pedido selecionado. Alerta ("Modificar ",Texto,Ticket,". Aguardando resposta..."); bool Ans=OrderModify(Ticket,Price,SL,TP,0);//Modificá-lo! //--------------------------------------------------- 6 -- se (Ans===verdadeiro) // Funcionou :) { Alerta ("Encomendar ",Texto,Ticket," modificado:)"); pausa; // A partir do loop modificado. } //--------------------------------------------------- 7 -- int Error=GetLastError(); // Falhou :( switch(Error) // Overcome errors { case 130:Alert("Wrong stops. Try again."); RefreshRates(); // Refresh data continue; // No próximo caso de iteração 136:Alerta("Sem preço. À espera de um novo tick..."); while(RefreshRates()==false) // Até o novo tick Sleep(1); // Atraso no loop continua; // Próximo caso de iteração 146:Alerta("O subsistema de negociação está ocupado.Tente novamente"); Sleep(500); // Solução simples RefreshRates(); // Refresh data continue; // Próxima iteração // Caso de erros críticos 2 : Alerta("General error."); break; // Sair switch case 5 : Alert("Old client terminal version."); break; // Sair switch case 64 : Alert("Account blocked."// Sair da caixa de interruptores 133:Alerta("Comercialização proibida"); pausa; // Sair da caixa de interruptores padrão: Alerta("Erro ",Erro); // Erro } pausa; // Fim do laço modificado } // Fim do laço modificado //------------------------------------------------------ 8 -- } // Fim da análise do pedido //--------------------------------------------------------------- 9 -- retorno; // Sair do início() } //-------------------------------------------------------------- 10 --Boa noite a todos!
No tutorial de Sergey Kovalev, eu encontrei um especialista - parada de trilha. Eu o copiei no MetaEditor, compilei-o, mas o programa não funciona. Por favor, informe qual é a razão. Talvez eu esteja fazendo algo errado.
Use isto:
Nas variáveis do usuário, escrevemos:
Na EA Start, escreva:
// ----------------------------- Тралим ордера ------------------------------------ TrailingRyn_b(TrailingStop,TrailingStep,Proskalz,MAGIC,WaitProfit,false);Após o início em subprogramas personalizados, escreva:
Funções como ModifError() são minhas funções personalizadas - elas apenas exibem uma mensagem de erro. Escreva, ao invés disso, suas próprias mensagens.
https://docs.mql4.com/ru/indicators/iBands