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

 
DanilaMactep #:

Boa tarde. Adicionei tudo ao roteiro como sugerido - código do roteiro para transferir os gráficos para d1 e o modelo de meio-termo abaixo.


A janela terminal com gráficos abertos na captura de tela abaixo.

Tenho 7 gráficos abertos na captura de tela e todos eles têm o padrão de escalonamento, bem como AUD/USD. Quando arrasto e solto o script D1_AND_SHABLON.mq4 nada acontece - qual é a razão deste erro? O_o

O problema é que há demasiados Expert Advisors e todos têm uma solução diferente. Mesmo que esteja correto, ele difere dos outros. Mas muitas vezes isso é completamente errado.

Sasha aconselhou a colocar o nome do modelo sem .tpl, mas na minha dica ele está

Este é o fórum para negociação, sistemas automatizados de negociação e testes estratégicos.

Qualquer pergunta de novatos sobre MQL4 e MQL5, dicas e discussão sobre algoritmos e códigos

Alexey Viktorov, 2022.02.17 08:29

Você tem apenas mais uma linha em seu código. Ou até mesmo substituir duas linhas por uma.

string tplName = "name.tpl";
/********************Script program start function*******************/
void OnStart()
 {
  long prevChart = ChartFirst();
  while(prevChart >= 0)
   {
    //if(ChartPeriod(prevChart) != PERIOD_H1)
    //  ChartSetSymbolPeriod(prevChart, ChartSymbol(prevChart), PERIOD_H1);
    ChartApplyTemplate(prevChart, tplName);
    prevChart = ChartNext(prevChart);
   }
 }/******************************************************************/
/*****************************End program****************************/

Você tirou um pouco de lá, um pouco de lá e conseguiu um mingau... nem mesmo uma pérola...
 
novichok2018 #:

Sim, exatamente: que a EA #2, veria todas as posições abertas pela EA #1. Somente se fosse fácil para mim, eu não pediria ajuda.

Até agora, vejo a seguinte solução: escrever um indicador que criaria um objeto "ponto" com coordenadas de abertura de posição pela EA #1 e colocá-lo em um gráfico com a EA #2 instalada.

Se minha lógica estiver correta, eu ainda preciso de ajuda para escrever este indicador.

Ele os vê
 
novichok2018 #:

Sim, exatamente: que a EA #2, veria todas as posições abertas pela EA #1. Somente se fosse fácil para mim, eu não pediria ajuda.

Até agora, vejo a seguinte solução: escrever um indicador que criaria um objeto "ponto" com coordenadas de abertura de posição pela EA #1 e colocá-lo em um gráfico com a EA #2 instalada.

Se minha lógica estiver correta, então ainda preciso de ajuda para escrever este indicador.

Não está muito claro se você precisa ver a posição aberta pela EA #1

ou EA #2?

Aqui, abaixo está o código da EA que vê as posições abertas pela EA #1,

Basta colocá-lo nas propriedades mágicas da EA#1.

//+------------------------------------------------------------------+
//|                                                  советник №2.mq4 |
//|                        Copyright 2021, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

input int  Magic = 0;  //

datetime OOT;   //время последней открытой позиции.
double  OOP;    //цена последней открытой позиции.

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   GetPos(Symbol(),Magic);

   Comment("время последней открытой позиции =",TimeToString(OOT),
           "\nцена последней открытой позиции = ",DoubleToString(OOP,_Digits));

  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
void GetPos(string sy,int mn)
  {

   int      i,k=OrdersTotal();

   for(i=0; i<k; i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderMagicNumber()==mn && OrderSymbol()==sy)
           {
            if(OOT<OrderOpenTime())
              {
               OOT = OrderOpenTime();
               OOP = OrderOpenPrice();
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

E exibe as coordenadas da última posição aberta no somment.

 
Alekseu Fedotov #:

Não está muito claro se você precisa ver as posições abertas da EA 1

ou EA #2 ?

Aqui, abaixo está o código para EA 1 que vê as posições abertas pela EA 1,

Basta colocá-lo nas propriedades mágicas da EA#1.

E mostra em algumas coordenadas da última posição aberta.

Ele não tem acesso ao código do conselheiro-transmissor.

O homem acredita teimosamente que se a ordem estiver aberta em outro gráfico, o transmissor não a vê.

Eu tentei explicar, mas em vão(

 
Tretyakov Rostyslav #:

Ele não tem acesso ao código do assessor-transmissor.

A pessoa acredita teimosamente que se uma ordem for aberta em outro gráfico, o transmissor não poderá vê-la.

Eu tentei explicar, mas em vão(

Pensei que se tratava do receptor, e como se o código estivesse aberto. Bem, não entendi.

 
Alexey Viktorov #:

O problema é que há muitos assessores e todos têm uma solução diferente. Mesmo que seja a correta, é diferente das outras. Mas muitas vezes isso é completamente errado.

Sasha aconselhou a colocar o nome do modelo sem .tpl, mas na minha dica desta forma


Você tirou alguns de lá, alguns de lá e ficou uma bagunça... nem mesmo uma pérola...
Detalhes muito pequenos, que você nunca prestaria atenção a si mesmo. Muito obrigado pela direção, vou continuar cavando amanhã. E isso é que eu vou voltar, pessoal ))))))))))))))))))
 
Tretyakov Rostyslav #:
Ele pode vê-los

Talvez os veja, eu não li o código EA, mas talvez só veja o que está refletido no gráfico onde ele está instalado. E as linhas Take Profit, Stop Loss e Open Price são exibidas, mas não há tempo aberto. Portanto, acho que se a EA #2 vir apenas o que é mostrado em seu gráfico, não será capaz de ler corretamente as informações da EA #1. Daí meu desejo de exibir em seu quadro todas as informações sobre a posição aberta pela EA #1: preço, tempo aberto e paradas.

 
Alekseu Fedotov #:

Não está muito claro se você precisa ver as posições abertas da EA 1

ou EA #2 ?

Aqui, abaixo está o código para EA 1 que vê as posições abertas pela EA 1,

Basta colocá-lo nas propriedades mágicas da EA#1.

E sai em algumas coordenadas da última posição aberta.

A plataforma não permite a instalação de dois EAs em um gráfico. Talvez seja necessário um indicador.

 
Vitaly Muzichenko #:

Os dados dos assinantes são prejudiciais de se retirar.

Mais uma vez, você tem 50 em sua conta com uma alavancagem de 500 e um assinante tem 5000 com uma alavancagem de 33.

Há um pequeno problema de cálculo aqui. Isto se estivermos falando deste serviço.

Se estamos falando de autocópia, então:

você tem 50 em sua conta com uma alavancagem de 2000 e um assinante 5000 com uma alavancagem de 33.

Você poderá abrir 3 posições com uma pequena alavancagem enquanto o assinante não terá mais dinheiro após a segunda, pois estará se expondo à margem.

---

Não é tão simples assim.

Obrigado!
Sobre os assinantes e seus dados.
A questão é que tudo será com seu consentimento. Não pretendo fazer cópias em massa neste recurso, é muito inconveniente.

Eu preciso dos dados para que o assinante não me engane duas vezes. Uma vez que o pagamento será feito após o lucro. E eu preciso ver o saldo do assinante para entender qual é a minha taxa.
O próprio assinante transferirá meus lucros.

A alavancagem é estável, 100. Meu saldo é de 100 dólares. Reduz a tensão na minha psique. E um assinante pode ter 100.000, é mais fácil para mim permanecer calmo do que para ele.
É assim que eu trabalho para os binãs.
Gostaria também de aprofundar o assunto para quem está no mercado cambial.

Entendo que você é um especialista.
Eu gostaria de perguntar se é possível fazer algo assim com a copiadora.
Por exemplo, os dados sobre o meu cliente (assinante) são emitidos pela API em meu painel de administração no site que meu amigo fez para mim. Mas não é muito bom na MQL5. Ou não muito))).

 
novichok2018 #:

Talvez os veja, eu não li o código EA, mas talvez só veja o que está refletido no gráfico onde ele está instalado. E as linhas Take Profit, Stop Loss e Open Price são exibidas, mas não há tempo aberto. Portanto, acho que se a EA #2 vir apenas o que é mostrado em seu gráfico, não será capaz de ler corretamente as informações da EA #1. É por isso que quero que seu gráfico mostre todas as informações sobre a posição aberta pela EA #1: preço, tempo aberto e paradas.

Só para deixar claro.

As linhas de ordens definidas não são objetos no gráfico e nenhuma EA pode contar linhas de ordem

Podemos ver que temos uma ordem, mas não temos nenhum objeto na tabela


Razão: