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

 
psyman:


Muito obrigado, amanhã vou pensar em uma maneira de substituir o iTime e o iClose, já que estou sentado na XP.

//+------------------------------------------------------------------+ 
//| Get Time for specified bar index                                 | 
//+------------------------------------------------------------------+ 
datetime iTime(const int index,string symbol=NULL,ENUM_TIMEFRAMES timeframe=PERIOD_CURRENT)
  {
   if(symbol==NULL)
      symbol=m_symbol.Name();
   if(timeframe==0)
      timeframe=Period();
   datetime Time[1];
   datetime time=0;
   int copied=CopyTime(symbol,timeframe,index,1,Time);
   if(copied>0) time=Time[0];
   return(time);
  }
//+------------------------------------------------------------------+
 

Como compilar uma função separada, por exemplo, arrasto, para que ela possa ser chamada -importada de EAs?

similar a .mqh ou dll

 
demonRDV:

Olá a todos!

Você pode me dizer por que eu não posso entrar em suas propriedades quando a EA está funcionando? Eu costumava fazê-lo, mas agora não consigo abrir as propriedades. Uma vez reiniciado o terminal ajudou, mas o problema apareceu novamente após um minuto. O EA é fresco, o terminal também está funcionando recentemente. Qual é o problema com as propriedades da EA ?

Obrigado!

muito provavelmente é feito em loop sem verificação de interrupções.
Você tem o código fonte? havia algum problema com esta EA antes?

 
Ghabo:

Como compilar uma função separada, por exemplo, arrasto, para que ela possa ser chamada -importada de EAs?

similar a como .mqh é chamado

assim.

na EA
#include <trall.mqh>

e diretamente no código chamar a função trall, por exemplo

int trall_size = 20;
int trall_start = 30;
int trall_step = 5;


trall("",0,-1, trall_size, trall_start, trall_step); // trall("); // trall de todos os pedidos na conta com os parâmetros definidos

int magic = 345;
trall(_Symbol,magic, OP_BUY, trall_size, trall_start, trall_step); // trall somente BUY ordens no símbolo atual com a lentidão especificada

Arquivos anexados:
trall.mqh  27 kb
 
Maxim Kuznetsov:

Pressione a tecla de atalho F7 :-)

O mouse no ícone da EA nem sempre funciona - o ícone pode ser sobreposto por outros objetos e a EA carrega a fila de mensagens e 100500 outros motivos

Eu sei o que é isso. Isso não ajuda )
 
Nikolay Khrushchev:

algo parecido com isso.

no conselheiro
#include <trall.mqh>

O arquivo de arrasto deve ser compilado separadamente e ter a extensão ex4.

#include <trall.ex4>

ou

#import "trall.ex4"
    ...
    ...
    ...
#import
O que deve ser inserido dentro daprópria função da rede de arrasto?
 
Ghabo:

Eu quis dizer que o arquivo de arrasto tem que ser compilado.

ou

O que deve ser inserido dentro daprópria função da rede de arrasto?

Por que você precisa de uma perversão assim? Não é mais fácil escrever a função na EA ou como foi sugerido com o arquivo .mqh?

Ou há um consultor especializado com a rede de arrasto, mas nenhuma fonte? Mas se não houver um modificador de exportação após o nome da função, será impossível importá-lo para outro EA.

Outra desvantagem de tais bibliotecas é que elas têm que ser arrastadas para um novo terminal junto com a EA. E se você usar o arquivo include .mqh, então você pode copiar apenas o EA compilado para outro terminal.

Экспортирование функций - Функции - Основы языка - Справочник MQL4
Экспортирование функций - Функции - Основы языка - Справочник MQL4
  • docs.mql4.com
Экспортирование функций - Функции - Основы языка - Справочник MQL4
 
Alexey Viktorov:

O que há com a perversão?

É um fetiche).

Lá, isso deve funcionar.

#property strict
void trall(string tr_symbol, int tr_magic, int tr_type, double tr_trall_size, double tr_trall_start, double tr_trall_step=1) export {
   if(tr_type>1) return;
   int ti;
   for(ti=OrdersTotal()-1;ti>=0;ti--) if(OrderSelect(ti,SELECT_BY_POS,MODE_TRADES)) {
      if(OrderSymbol()!=tr_symbol && tr_symbol!="") continue;
      if(OrderMagicNumber()!=tr_magic && tr_magic>0) continue;
      if(tr_type>=0 && OrderType()!=tr_type) continue;
      double work_price;
      double work_pp = SymbolInfoDouble(_Symbol,SYMBOL_POINT);
      int    work_dig = SymbolInfoInteger(_Symbol,SYMBOL_DIGITS);
      if(tr_trall_size>0) {
         if(OrderType()==0) {
            work_price = SymbolInfoDouble(_Symbol,SYMBOL_BID);
            if(NormalizeDouble(work_price-(tr_trall_size+tr_trall_step)*work_pp, work_dig)>NormalizeDouble(OrderStopLoss(), work_dig) && 
               NormalizeDouble(work_price-tr_trall_start*work_pp, work_dig)>=NormalizeDouble(OrderOpenPrice(), work_dig)) 
                  OrderModify(OrderTicket(),-1,0,NormalizeDouble( work_price-tr_trall_size*work_pp, work_dig),-1,-1);
            }
         if(OrderType()==1) {
            work_price = SymbolInfoDouble(_Symbol,SYMBOL_BID);
            if((NormalizeDouble(work_price+(tr_trall_size+tr_trall_step)*work_pp,work_dig)<NormalizeDouble(OrderStopLoss(),work_dig) || OrderStopLoss()==0) && 
               NormalizeDouble(work_price+tr_trall_start*work_pp,work_dig)<=NormalizeDouble(OrderOpenPrice(),work_dig)) 
                  OrderModify(OrderTicket(),-1,0,NormalizeDouble(work_price+tr_trall_size*work_pp, work_dig),-1,-1);
         }
      }
   }
}

ou eu estou colocando no lugar errado?

 
Ghabo:

É um fetiche).

Lá, isso deve funcionar.

Ou eu estou colocando no lugar errado?

Parece estar no lugar errado. Você precisa descobrir como colocar a importação entre aspas ou entre parênteses. Depende da localização deste arquivo na pasta Bibliotecas ou no mesmo local em que o Expert Advisor importa as funções desta biblioteca. Eu experimentei isto há muito tempo e não consigo me lembrar, e agora sinto muito, sou preguiçoso demais para descobrir como fazer isto.
 
psyman:


Muito obrigado, amanhã vou pensar em algo para substituir o iTime e o iClose enquanto estou sentado na XP.

Aqui, código puro para a etiqueta. Funciona após o preço da Licitação de qualquer forma, de qualquer forma ao rolar o gráfico, de qualquer forma após trocar de gráfico. Ele corre atrás da mira e lembra-se do offset estabelecido desta forma, continuando a navegar até a Licitação depois.

PS até eu já mudei o hp recentemente, já que tudo começa a falhar, alguns sites requerem atualização do navegador e ele não pode ser atualizado no hp,

Também estou cansado de limitar a RAM a 3,7gb.

xp não tem suporte para testes de corujas em todos os núcleos de CPU

Arquivos anexados:
Razão: