[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 313
Como fazer para que quando um parâmetro de tendência for passado para esta função, que será responsável pela transferência da tendência principal assumida no momento, o cálculo se baseie neste parâmetro.
Isto é, se a tendência == para baixo, a função no loop era como agora, e se atendência == para cima, oAberto[i] e o Fechado[i] eram trocados no loop, para que as condições fossem observadas. Porque, nesse caso, o preço fechado da barra será menor que o preço aberto e a diferença será negativa.
bool trend;
if ((2*trend-1)*Δ=>const) cnt++;
if ((2*trend-1)*Δ<const) cnt=0;
Nesse caso2*trend-1toma valores +1 e -1, ou seja, se trend=verdadeiro será para cima e trend=falso será para baixo enquanto Δ será tomado respectivamente com sinal certo ou errado. Este é apenas um exemplo de onde a matemática substitui a matemática se.
gyfto, o roteiro de teste do kit está funcionando para você?
Eu o teria feito:
//в шапке#include <SharedMemoryMT4.mqh>//в инит. Создание и открытие не обязательно. Эти функции для ускорения работы с памятью.
MemoryCreate(1, "", NULL, -1, "ind", 60*GlobalVariableGet("ADXBars"));
// Вариант более быстрый, чем выше:
MemoryCreateProjection(1, "", NULL, -1, "ind", 60*GlobalVariableGet("ADXBars"));
//в деинит
MemoryCloseName(1, "", "ind");
//в старт вместо for(; i<Σ; i++) MemoryWriteInt(1, "", -1, "ind", i * 4, iBars(sn, 1));//ind[i]=iBars(sn, 1);
#property show_inputs#include <SharedMemoryMT4.mqh>externint x;//сколько секунд назад с данного момента прикрепления смотрим значения TOLHCVint init()
{
// MemoryOpen(1, "", -1, "ind"); // Это не требуется.return(0);
}
int start()
{
//MemoryReadInt(1, "", -1, "ind", i) это ind[i], GlobalVariableGet("final") это последний элемент в массиве, а ф-ла выглядит так: n=ind[final]-ind[final-x]+1int n=MemoryReadInt(1, "", -1, "ind", GlobalVariableGet("final"))-MemoryReadInt(1, "", -1, "ind", GlobalVariableGet("final")-x)+1;
Alert(TimeToStr(TimeCurrent(),TIME_SECONDS), ": Time=", TimeToStr(Time[n], TIME_SECONDS), ", Open=", Open[n], ", High=", High[n], ", Low=", Low[n], ", Close=", Close[n], ", Volume=", Volume[n]);
return(0);
}
O resto está correto. Não entrou apenas no protocolo de transferência de dados.
A criação, abertura e alocação de memória são opcionais. Estas funções são para agilizar o manuseio da memória. Para a mais simples operação de biblioteca, você só precisa das funções de leitura e escrita. A biblioteca fará o resto. Além disso, você pode ler antes de escrever. A memória no tamanho solicitado será alocada e a função retornará zero. Já que ainda não há nada lá.
Estou provavelmente prestes a ganhar um concurso para o erro mais idiota. Eu não tinha a variável ADXBars GV declarada, por isso escrevi "erro de método". Além disso, não houve alinhamento no limite intangível. Mas o alerta ainda emite todos os zeros, com ou sem alinhamento. Vou assistir ao vídeo e tentar descobrir por mim mesmo primeiro. Se eu falhar, tentaremos descobrir isso juntos.
Eu mesmo cometi o maldito erro. Na verdade, não há lógica alguma. Para abrir um pedido pendente de acordo comhttps://book.mql4.com/ru/appendix/limits, o preço de abertura deve ser abaixo de Bid (para venda) ou acima de Ask (para compra). Estou fazendo o que é necessário.
//+-------------------------------------------------------------------------------------+//| Открытие длинной позиции |//+-------------------------------------------------------------------------------------+bool OpenBuy()
{
int ticket = -1;
double OOP = High[1] + i_thresholdToUp * pt;
pr ("ND(OOP) = " + ND(OOP) + " ; Ask = " + Ask);
if (ND(OOP) > Ask)
ticket = OrderSend(Symbol(), OP_BUYSTOP, 0.1, ND(OOP), 3, 0, 0, NULL, i_magic, 0, CLR_NONE);
else pr ("Ордер послать не удалось " + GetLastError());
if (ticket > 0)
{
lastBarTime = Time[0]; // На текущем баре все необходимые действия..// .. успешно выполненыreturn (true);
}
}
De vez em quando eu recebo 0 e 130 erros. Embora 130 seja um erro de parada errada, que pode acontecer durante a modificação, mas não durante a abertura do pedido.
Na captura de tela a situação e a impressão exibida usando a função pr.
Por favor, informe como se livrar deste bug. Estou realmente farto e cansado deste erro. Logicamente, não se trata de forma alguma do assunto.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Como fazer para que quando um parâmetro de tendência for passado para esta função, que será responsável pela transferência da tendência principal assumida no momento, o cálculo se baseie neste parâmetro.
Isto é, se a tendência == para baixo, a função no loop era como agora, e se atendência == para cima, o Aberto[i] e o Fechado[i] eram trocados no loop, para que as condições fossem observadas. Porque, nesse caso, o preço fechado da barra será menor que o preço aberto e a diferença será negativa.
Nesse caso2*trend-1toma valores +1 e -1, ou seja, se trend=verdadeiro será para cima e trend=falso será para baixo enquanto Δ será tomado respectivamente com sinal certo ou errado. Este é apenas um exemplo de onde a matemática substitui a matemática se.
gyfto, o roteiro de teste do kit está funcionando para você?
Eu o teria feito:
O resto está correto. Não entrou apenas no protocolo de transferência de dados.
A criação, abertura e alocação de memória são opcionais. Estas funções são para agilizar o manuseio da memória. Para a mais simples operação de biblioteca, você só precisa das funções de leitura e escrita. A biblioteca fará o resto. Além disso, você pode ler antes de escrever. A memória no tamanho solicitado será alocada e a função retornará zero. Já que ainda não há nada lá.
Zhunko, eu acho que não. Comentário() não sai, apenas escreve no log, no log:
Está tudo em uma linha, eu a mudei para cá para que não haja nenhuma largura anormal de tela aqui.
Zhunko, eu acho que não. Comentário() não sai, ele só escreve no log, no log:
Está tudo em uma linha, eu a mudei para cá para que não haja nenhuma largura anormal de tela aqui.
TarasBY artmedia70 hoz
Obrigado, senhores oficiais!
TarasBY artmedia70 hoz
Obrigado, senhores oficiais!
O quê, você se matou? :)))
Duas vezes 8-[
Olá! Por favor, me ajude neste tópico:
https://www.mql5.com/ru/forum/144634
Muito obrigado!
Eu mesmo cometi o maldito erro. Na verdade, não há lógica alguma. Para abrir um pedido pendente de acordo comhttps://book.mql4.com/ru/appendix/limits, o preço de abertura deve ser abaixo de Bid (para venda) ou acima de Ask (para compra). Estou fazendo o que é necessário.
De vez em quando eu recebo 0 e 130 erros. Embora 130 seja um erro de parada errada, que pode acontecer durante a modificação, mas não durante a abertura do pedido.
Na captura de tela a situação e a impressão exibida usando a função pr.
Por favor, informe como se livrar deste bug. Estou realmente farto e cansado deste erro. Logicamente, não se trata de forma alguma do assunto.