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

 
Aleksei Lesnikov:

Alexei, obrigado! Está claro agora que isso não é possível.

É verdade, eu não tenho exatamente mql4. Estou tentando mudar os dados através da classe CiOpen. Estou confuso com o método Update, que deveria mudar o elemento em uma posição especificada da matriz.

Copie-o em suas variáveis/arranjos e trabalhe com eles já.
 
Valeriy Yastremskiy:
Copie em suas variáveis/arranjos e trabalhe com eles já.

Assim o fiz.

 

Sou muito grato por sua ajuda! Sou bastante novo em programação.

Enquanto estudava, enfrentei dificuldades para implementar o código. Há um artigo https://www.mql5.com/ru/articles/3336 Não consigo entender como é feita a comparação

if(!CompareTiks(n_tiks[i], m_ticks[k]))

Suspeito que "Coleta de Dados Modelo" é usado e existe um método tão global"Comparar". Mas a listagem do artigo não dá em nenhum lugar como fazer o compilador entender que eu deveria usar "Comparar" de " Coleta de Modelos deDados". Não encontrei nenhum exemplo de métodos globais de"Coleta de Modelos de Dados".

A seguinte entrada na descrição do método global não irá alterar o resultado

template<typename T>
int Compare(
T x, // primeiro valor
T y // segundo valor
);

Como resultado, eu tenho o seguinte código (ou melhor, o código tem a mim)

#ifndef MyInclude
#define MyInclude


//template<typename T>
//interface ICollection
//#include <Generic\Interfaces\ICollection.mqh>
template<typename T>
int Compare(
T x, // primeiro valor
T y // segundo valor
);

classe CMarketBook
{
privado:
string m_symbol;
MqlTick m_ticks[];
MqlTick LastTicks[];

protegidos:

public:
void CMarketBook::CompareTicks(void);
};
//+ +
//|Compare two ticks colllection and find new ticks |
//+ +
void CMarketBook::CompareTicks(void)
{
MqlTick n_ticks[];
ulong T_begin = (TimeCurrent()-(1*20))*1000;//20sec ago
m_symbol = Symbol();
int Total = CopyTicks(m_symbol, n_ticks, COPY_TICKS_ALL, T_begin, 1000);
if (Total < 1) {printf("Failed to get ticks"); return;}
if (ArraySize(m_ticks) == 0) {ArrayCopy(m_ticks, n_ticks, 0, 0, WHOLE_ARRAY); return;}

int k = ArraySize(m_ticks)-1;
int n_t = 0;
int Limit_comp = 20;
int Comp_success = 0;

// Experimente novos tiquetaques recebidos
para (int i = ArraySize(n_ticks)-1; i>=0 && k>=0; i--)
{
if (!Compare(n_ticks[i], m_ticks[k]))
{
n_t = ArraySize(n_ticks) - i;
k = ArraySize(m_ticks) - 1;
Comp_success = 0;
}
else
{
Comp_success += 1;
if (Comp_success >= Limit_comp) break;
k--;
};
};
//Memorize ticks recebidos
ArrayResize(m_ticks, Total);
ArrayCopy(m_ticks, n_ticks, 0, 0, WHOLE_ARRAY);
//Calculate start index of new ticks and copy it into the buffer for access
ArrayResize(LastTicks, n_t);
if (n_t > 0)
{
int index = ArraySize(n_ticks) - n_t;
ArrayCopy(LastTicks, m_ticks, 0, index, n_t);
};
};
#endif

Ao compilar, um erro é gerado - "objeto é passado somente por referência" à linha se (!Compare(n_ticks[i], m_ticks[k])) apontando paran_ticks[i]

Пишем скальперский стакан цен на основе графической библиотеки CGraphic
Пишем скальперский стакан цен на основе графической библиотеки CGraphic
  • www.mql5.com
Именно с этой, улучшенной и дополненной версией мы и начнем работать, чтобы постепенно превратить ее в скальперский стакан цен. Краткий обзор графической библиотеки CPanel Созданию пользовательских интерфейсов в MQL5 посвящено много статей. Среди них особенно выделяется серия Анатолия Кажарского "Графические интерфейсы", после которой сложно...
 
Ao usar a Internet móvel, não há SendNotification... Ao conectar-se à wi-fi, eles vêm (mesmo os que não vieram quando se usava a internet móvel). Isto é um problema do lado do ISP? Acho que todas as permissões estão habilitadas em configurações de internet móvel.
 

Boa tarde a todos.

Estou testando um consultor especialista Alpari MT4. Antes de fazer o teste, a MT sugere que eu defina o spread (ou o valor atual ou um específico).


Na Alpari, o spread está flutuando. É por isso que as configurações acima mencionadas de tamanho de propagação não me convém.

P. Qual função exibe na história os valores de spread para cada tick histórico?
Ou, como devo fazer para que minha EA abra e feche ordens considerando os valores de spread válidos no momento em que a ordem é aberta ou fechada?

Obrigado a todos por sua ajuda.

 
ANDREY:

Boa tarde a todos.

Estou testando um consultor especialista Alpari MT4. Antes de testar a MT me sugere definir o valor de spread (atual ou qualquer valor em particular de oferecido).


Na Alpari, o spread está flutuando. É por isso que os valores de propagação acima mencionados não funcionam para mim.

P. Qual função exibe no histórico os valores de spread para cada tick histórico?
Ou, como devemos fazer para que nossa EA abra e feche ordens considerando os valores de spread válidos no momento da abertura ou fechamento da ordem?

Obrigado a todos por sua ajuda.

Você não pode fazer isso no MT4, mas você pode no MT5

 
Vladimir Pastushak:

Não em MT 4, em MT 5 você pode

Muito obrigado pelas valiosas informações.

Vou começar a estudar o mql5. Dizem que é muito semelhante ao mql4. Gostaria muito que você me dissesse como implementar minha idéia em mql5.

 
ANDREY:

Muito obrigado pelas valiosas informações.

Vou começar a estudar o mql5. Dizem que é muito semelhante ao mql4. Eu ficaria muito grato a você se pudesse me dizer como o mql5 implementa minha idéia.

Você não precisa fazer nada com o mt5.
Tudo acontece automaticamente e a EA negocia com spread flutuante no testador de estratégia.
 
Vladislav Andruschenko:
No mt5 você não precisa inventar nada.
Tudo acontece automaticamente e a EA negocia com um spread flutuante no testador de estratégia .

Isto é legal. Obrigado pelas informações valiosas.

Se você quiser mudar rapidamente de mql4 para mql5, é melhor ler os manuais para mql4 e mql5 simultaneamente e prestar atenção às diferenças entre eles. Tudo é aprendido por comparação.....
 

Bom dia a todos!

Eu comecei a estudar o mql5. Comecei estudando como as ordens são abertas. Entendi que o código para abrir um pedido está escrito em um arquivo separado. Agora domino este código e sua variante final para o comércio. Fiquei surpreso que a abertura do pedido em mql4 seja muito mais fácil e simples do que em mql5.

Gostaria de perguntar se tenho certeza de que já tenho o arquivo com o código para abrir o pedido e não preciso escrever este código. Se tal arquivo estiver disponível em algum lugar, então só preciso conectá-lo à minha EA e definir os valores dos parâmetros do pedido que preciso... Se existe tal arquivo, onde e como ele deve ser encontrado, e qual é seu nome.

Terei o maior prazer em lhe dar o nome do arquivo.