[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 454

 
smart:


Como posso saber quais indicadores estão no modelo? Eu instalei um modelo antigo, mas nem todos os indicadores são exibidos. Esqueci os nomes dos indicadores incluídos no modelo. Obrigado!


Abra a pasta {\i1}templates}, encontre seu modelo, abra-o no bloco de notas, procure por <janelas> tag e veja quais indicadores estão empacotados com quais parâmetros.
 
tol64:

demlin20.06.2011 22:02

Olá a todos!

Tenho uma pergunta, não posso fazer com que o programa determine o lucro do pedido em pips. Alguém me ajude.

Tente todos os pedidos em loop.

Para(i = 0; i < OrderHistoryTotal(); i++)

Você seleciona aquele que precisa por certos critérios usando OrderSelect(). Em seguida, você pergunta por OrderProfit(). Este é o lucro líquido em dinheiro. O valor do ponto é aproximadamente o seguinte:

(OrderProfit()/10)/OrderLots()+(OrderSwap()/10)/OrderLots();

Verifique só para o caso de))))

Obrigado, eu vou tentar
 

Escreva e leia as informações do comentário do pedido. OrderComment().

Ao abrir um pedido, registro o saldo e o nível de Stop Loss no comentário. Quando o pedido é aberto, eu olho através do registro. Tudo é preciso.




O saldo é de 10000,00. Stop Loss 1.67740. O número total de caracteres é 15.
Então, usando funções de string, seleciono os caracteres necessários e os escrevo no arquivo csv. Mas eu me deparei com tal problema. Se uma parada de perda for desencadeada, estes caracteres [sl] são adicionados ao final do comentário.


E eu tenho 19 dígitos, não 15. A questão é que eu verifico o número de dígitos no saldo atual e o número de dígitos no preço antes de fazer um comentário. Isto é atribuído a variáveis, que eu utilizo então para determinar quantos e quais dígitos preciso obter. Mas esta [sl] me dá um momento difícil. Se o preço tiver 7 dígitos, o arquivo armazenará 740, não 1.67740. Não consigo descobrir como resolver este problema). Por favor, me ajude.
 
A coisa mais fácil a fazer é escrever a coisa certa no comentário de uma só vez. Ou seja, colocar delimitadores entre os dados. Então o comprimento da corda não importará, você apenas puxará o substrato entre os delimitadores.
 
granit77:
A maneira mais fácil é escrevê-lo corretamente no comentário de uma só vez. Isso é colocado delimitadores entre os dados. Então o comprimento do cordel não importará, basta puxar o substrato entre os delimitadores.


Anteriormente me foi oferecida esta variante simples:

string comment = OrderComment(); comment = StringSubstr(comment, 0, 15); // aparado à direita

Era uma variante simples, mas eu também tive algumas dificuldades com ela, mas consegui resolver o problema. )

Por que, se você escrever tudo corretamente de uma vez, não serão acrescentados caracteres [sl]? Posso ter um pequeno exemplo com a extração do substrato do comentário do pedido, se você não se importa?

 
tol64:


Esta simples opção me foi oferecida anteriormente:

A opção é simples, mas eu também tive dificuldades com ela, mas decidi. )

Por que, se você escrever tudo corretamente de uma vez, os caracteres [sl] não serão acrescentados? Posso ter um pequeno exemplo com a extração de um substrato do comentário do pedido, se você não se importa?

Deixe-os ser adicionados. Você quer recuperar seus dados, e não se importa com o que eles acrescentam ou quanto tempo a cadeia é longa.

   string _comment="10000.00"+"$"+"1.67740"+"#";//строка комментария. "$","#" - разделители (символы,какие понравятся) 
   int lenstring=StringLen(_comment);           //длина строки _comment
   int delim1,delim2;                           //позиции разделителей в строке _comment
   string balans,stoploss;                      //извлекаемые подстроки
   delim1=StringFind( _comment, "$", 0);        //определяем позиции разделителей в строке _comment
   delim2=StringFind( _comment, "#", 0);        //определяем позиции разделителей в строке _comment 
   balans   =  StringSubstr( _comment,0, delim1);                //извлекли строку баланс
   stoploss =  StringSubstr( _comment,delim1+1, delim2-delim1-1);//извлекли строку стоплосс 
   Comment("|",balans,"|",stoploss,"|");//проверка 
 
Bom dia a todos. Eu encontrei uma situação engraçada quando dois computadores diferentes podem se conectar à mesma conta e até mesmo negociar simultaneamente nessa conta. Quem pode me dizer se é possível controlar um computador remoto, por exemplo, mudar variáveis ext ou pelo menos suspender um EA? Agradeço antecipadamente, porque enfrentei uma situação estranha quando não posso assumir o controle do terminal, que funciona em casa (eu mesmo no trabalho, por exemplo).
 
granit77:
Deixe-os ser adicionados. Você quer recuperar seus dados, e não se importa com o que é adicionado ou quanto tempo a cadeia é longa.


)) Obrigado. Grande exemplo! Tudo isso em uma só palavra. Este é exatamente o tipo de exemplo que às vezes falta muito.
 
snail09:

Sim, está definitivamente fervendo. Todos estão apenas respondendo a sua... perguntas. Talvez você esteja tão desinformado?

Se alguém me dissesse como rastrear o cruzamento da linha de tendência pelo preço (uma linha reta), isso seria suficiente para mim, mesmo uma dica? Obrigado imediatamente, pois não espero uma resposta em um futuro próximo. Você, Estrela, é um alagador, que os moderadores me perdoem...


Não sou nenhum feiticeiro, é minha primeira vez aqui. 8))))
 
peshihod:

Falta prática. Você não pode executar seu programa, ele não funciona. Um círculo vicioso: nenhuma opção viável-> nenhuma habilidade-> nenhuma opção viável.

Temos que pensar sobre isso.... :-/


Para continuar o tema.

Para aprender, você precisa praticar.

Faça o seguinte no terminal comercial:
1. Uma conta demo deve ser aberta.
Digite os detalhes da conta no terminal comercial: Arquivo->Login->...
2.Use uma tabela aberta ou abra uma nova: Arquivo->Novo_carta->...
3.Definir o máximo em: Serviço->Configurações->Cartões->Máx.bar_history->250000
4.Definir um minuto de tempo: Gráficos->Período->M1_Um_minuto
5.Fazer atualização: Gráficos->Atualizar
6.Teste de Estratégia Aberto: View->Strategy Tester
Todas as outras janelas fecham (minimizar), deixar uma janela com um gráfico e uma janela com o testador.

Em seguida, nas configurações do Strategy Tester:
7. Símbolo: Selecione o símbolo que tem um gráfico aberto.
8.Modelo:Abrindo preços(.....)
<<<Este modelo para usar até OrderSend().>>>
9.Data de uso: Marque a caixa.
Data: _de:<Ontem(exceto sábado e domingo)>, _até:Hoje
10.Visualização: desmarcar se verificado.
11.Período: M1
12.Otimização: remover carrapato, se presente.

Abrir mais MetaEditor:
13.No menu do terminal comercial:Service->Editor_MetaQuotes_Language
14.Escrever um programa, por exemplo:
//

int i;
int const=5;
int Celoe, Ostatok;
bool flag_Odin_Raz=true;




int start()
{

if(flag_Odin_Raz==true)
{
//-------------
i=0;
while(i<22)
   {
   Celoe=i/const;
   Ostatok=MathMod(i,const);
   Print("При i=", i, " Celoe=", Celoe, " Ostatok=", Ostatok);
   i=i+1;
   }
//-------------
flag_Odin_Raz=false;
}
return(0);
}

//=============================

15 No MetaEditor, menu: File->Save_as: definir o nome do arquivo, salvar a extensão .mq4, a pasta deve ser 'experts'.
16.No MetaEditor no menu: File->Compile

Depois no testador nas configurações:
17.Advisor: encontrar e selecionar o nome do arquivo do programa.
18. Clique no botão 'Iniciar' com um clique do mouse.
19. No testador->log
vemos o resultado do programa através das mensagens Print()
-----------------------------------------
Para uma visualização mais fácil:
20. Clique com o botão direito do mouse em qualquer linha do log->Open
Isto abrirá a pasta de logs com arquivo *.log, que você pode abrir usando qualquer editor de texto, Bloco de Notas, Word, etc.

PS
Se o arquivo for muito grande e nenhum editor de texto for capaz de abri-lo, então você deve apagar este arquivo usando os meios do Windows e reiniciar o programa pressionando o botão 'Start' do terminal comercial. Pasta do testador: "...Registros de instalação", não confundir com outro: "...Registros de instalação".

PPS
Para aprender a programar, você precisa de um compilador de linguagem de programação que transforme a escrita textual das ações necessárias em um "programa" (legível pelo ser humano), em uma linguagem de comandos de máquina -- compreensível para um computador. Sem a prática, é impossível aprender. Mql4 não cria programas separados, *.mq4 se transforma em *.ex4, que é executado a partir de um shell de programa.
*.ex4 não pode ser executado diretamente, o algoritmo descrito acima contorna este ponto.