Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1012

 
Alexey Viktorov:

Note neste post as palavras "Todos os terminais têm pastas compartilhadas".


Procure informações sobre como fazer isso e pronto... É chamado de ligação de pastas.

Portanto, você pode fazer isso. Escreva uma biblioteca e acesse esta biblioteca de diferentes terminais e eles podem trocar dados ou conectar um robô a terminais de 2m. Eu li um pouco sobre a ligação até descobrir. Talvez haja um tópico onde você possa perguntar mais sobre ele...

 
Seric29:

Portanto, você pode fazer isso. Escreva uma biblioteca e acesse esta biblioteca de diferentes terminais e eles podem trocar dados ou conectar um robô a 2 terminais. Eu li um pouco sobre a ligação até descobrir. Talvez haja um tópico onde você possa perguntar mais sobre ele...

Eu não vi o tópico no fórum, mas depois de olhar algumas instruções, eu acho este mais compreensível. Eu tentei, funcionou, mas ainda não vejo a necessidade de usá-lo. Embora eu ache que seria uma boa idéia combinar a história de todos os terminais em uma única pasta.

 
Alexey Viktorov:

Não vi nenhum tópico do fórum, mas vi algumas instruções e esta é mais compreensível. Eu tentei e funciona, mas ainda não vejo a necessidade disso. Embora eu ache que unir o histórico de todos os terminais em uma única pasta seria bom.

Obrigado pelo conselho. Eu usei um elo duro



Isto requer que os terminais sejam instalados no mesmo volume.

Eu estupidamente adicionei mais uma unidade, fundi arquivos ex4 e mq4 , como resultado, tudo funciona em ambos os lados agora você pode escrever bibliotecas compartilhadas e usá-las. Não sei quão confiável ele é, mas eu joguei o robô no gráfico conta. Quando compilo o código os arquivos mudam em 2 lados, mas atualizo os cálculos em um lado, se eu deixar o robô para trabalhar em modo on-line, preciso que o programa seja o mesmo e concluído e compilado, pois ele funcionará desconhecido, talvez alguém tenha a oportunidade de verificar, eu ainda não posso verificar.

 
Seric29:

Obrigado pelo conselho. Eu usei um elo duro



Isto requer que os terminais sejam instalados no mesmo volume.

Eu estupidamente adicionei uma unidade e depois fundi os arquivos ex4 e mq4, no final tudo funciona em ambos os lados agora você pode escrever bibliotecas compartilhadas e usá-las. Não sei quão confiável ele é, mas eu joguei o robô no gráfico conta. Quando eu compilo os arquivos de código mudam em 2 lados, mas atualizo os cálculos em um lado, se eu deixar o robô para trabalhar em modo on-line, preciso que o programa seja o mesmo e concluído e compilado como vai funcionar é desconhecido, talvez alguém tenha a oportunidade de verificar, eu não posso testar ainda.

Então existe uma pasta mágica diretamente no compilador, ou não é adequada?


 
Seric29:

Obrigado pelo conselho. Eu usei um elo duro

Por que fazer links para arquivos específicos? Não seria melhor fazer links simbólicos para pastas e todos os arquivos desta pasta estarão disponíveis nos terminais onde estes links são feitos?

Essa é uma boa idéia:

Na figura 00.png, do lado esquerdo está a pasta em si, e do lado direito está um link de um terminal.

Na imagem 11.png também, um link de outro terminal

E na imagem 22.png conteúdo, no lado esquerdo é uma pasta em si, e no lado direito é conteúdo de um link.

Arquivos anexados:
00.png  102 kb
11.png  103 kb
22.png  118 kb
 
Vitaly Muzichenko:

Então, há uma pasta mágica bem no compilador, ou ela não é adequada?


Estou perguntando se é possível fazer isso e se funcionará de forma confiável. A resposta foi não. Fui aconselhado sobre um programa e, é claro, eu mexi com ele, mas não funcionou. Depois dei o conselho da linha de comando, passei 3 horas brincando e consegui algo, mas não sei como não é confiável primeiro atualizar a data e o conteúdo do arquivo, e então comecei a mudar apenas o conteúdo e a data não mudou, é um pouco estranho. Onde posso ler sobre seu método? Quão confiável é, será que os robôs serão capazes de se comunicar uns com os outros on-line?

 
Alexey Viktorov:

Por que fazer links para arquivos específicos? Não seria melhor fazer links simbólicos para pastas e todos os arquivos desta pasta estarão disponíveis nos terminais onde estes links são feitos?

É notável assim:

Na captura de tela 00.png à esquerda está a pasta em si e à direita um link de um terminal

A figura 11.png também tem um link de outro terminal

E na imagem 22.png há um conteúdo, no lado esquerdo uma pasta propriamente dita, e no lado direito um link para o conteúdo.

Já o vi, sincronizado via TotalComander, mas como entendo, só transfere arquivos (ex. fotos), e se estamos falando de que existe um arquivo de texto e ele muda, será que ele mudará se eu acrescentar algo ao arquivo? Quão confiável é a comunicação do TotalComander e os robôs podem se comunicar online ou é apenas para escrever código?

 
Seric29:

Já vi isso, sincronizar via TotalComander, mas como entendo, só transfere arquivos (como fotos), mas se estamos falando de um arquivo de texto e ele muda, ele mudará se eu acrescentar algo ao arquivo? Quão confiável é a comunicação através do TotalComander, será que os robôs serão capazes de se comunicar uns com os outros on-line ou será útil apenas para escrever código?

TotalComander é apenas para exibir o conteúdo de duas pastas. É mais familiar para mim do que o Windows Explorer. Eu também fiz todas as ligações simbólicas na linha de comando. Somente usei /D em vez de /H e não um arquivo, mas uma pasta. E este link de diferentes lugares tem acesso ao mesmo arquivo.

Embora, eu só queria saber se o arquivo estará disponível quando for utilizado por um terminal... Melhor entrar em contato com Segei Tarbolin pessoalmente. Pelo que entendi, ele o usa e provavelmente sabe exatamente.

 
Alexey Viktorov:

TotalComander é apenas para mostrar o conteúdo de duas pastas. Também é mais familiar para mim do que o Windows Explorer. E eu fiz todas as ligações simbólicas da mesma forma na linha de comando. Somente usei /D em vez de /H e não um arquivo, mas uma pasta. E este link de diferentes lugares tem acesso ao mesmo arquivo.

Embora, pensei agora mesmo, mas se o arquivo estará disponível quando for utilizado por um terminal ... É melhor escrever no Segei Tarbolin pessoal. Pelo que entendi, ele o usa e provavelmente sabe exatamente.

Eu brinquei com o Comandante Total, em geral, como eu entendo, então só há sincronização no momento de pressionar o botão está acontecendo e através da tecla H do console, o conteúdo do arquivo está mudando em tempo real, mas quando você clica em compilar sobre os cálculos originais que o robô fez por referência não são alterados, eu tenho que pressionar o botão de compilação e o link, mas se o robô for o mesmo e não tocar no código funciona, não sei se ele vai funcionar on-line, ainda não é possível testar pode derrubar o programa de configurações inacabadas. Mas como os arquivos mudam a propriedade, acho que deve funcionar. Em geral, aqui ou através do console ou o cara sugeriu algo acima, mas eu não achei a informação normal. Vou escrever ao homem que você aconselhou.

 

Olá a todos, poderiam por favor me dizer como reescrever corretamente a função da MQL4 para MQL5 :

//+------------------------------------------------------------------+
//Número de Encomendas_Venda fechadas no último bar
int Anz_g_Sell_Order()
{
int count = 0;
for(int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) == verdadeiro
&& OrderSymbol() == Symbol() && OrderType() == OP_SELL
&& OrderMagicNumber() == Magic_Nr
&& OrderCloseTime() > iTime(NULL,PERÍODO_M15,0))
{
contar++;
}
}
devolução(contagem);
}
//+---------------------------------------------------------------------+

Eu o reescrevi, mas não funciona por alguma razão, onde está o erro? :

//+------------------------------------------------------------------+
//Número de Encomendas_Venda_Fechadas no último bar
int Anzahl_g_Sell_Order()
{
int count = 0;
if(HistorySelect(0,INT_MAX))
{
for(int i=HistoryDealsTotal()-1;i>=0;i--)
{
ulong ticket = HistoryDealGetTicket(i);
if(HistoryDealGetString(ticket,DEAL_SYMBOL) == _Símbolo
&& HistóriaDealGetInteger(ticket,DEAL_TYPE) == DEAL_TYPE_SELL
&& HistóriaDealGetInteger(ticket,DEAL_ENTRY ) == DEAL_ENTRY_OUT
&& DEAL_ENTRY_OUT > iTime(NULL,PERIOD_M15,0))
{
contar++;
}
}
}
devolução(contagem);
}
//+---------------------------------------------------------------------+