[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

 
hoz:

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.


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>
extern int x;//сколько секунд назад с данного момента прикрепления смотрим значения TOLHCV

int init()
  {
//   MemoryOpen(1, "", -1, "ind"); // Это не требуется.
   return(0);
  }
int start()
  {
   //MemoryReadInt(1, "", -1, "ind", i) это ind[i], GlobalVariableGet("final") это последний элемент в массиве, а ф-ла выглядит так: n=ind[final]-ind[final-x]+1
   int 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á.

 

Zhunko, eu acho que não. Comentário() não sai, apenas escreve no log, no log:

15:51:13 Check_SharedMemoryMT4.dll AUDUSD,M1 inputs: Area=1; InitPrefix=""; UserGlobal=25; UserTerminal=50; UserWindow=100; CheckWriteRead=false; CheckWrite=false; CheckRead=false; CheckGeneral=false
CheckProjection=false; CheckClose=false; NamePrefix="Check"; NameMemory0="CheckMemory0"; NameMemory1="CheckMemory1"; NameMemory2="CheckMemory2"; NameMemory3="CheckMemory3"; NameMemory4="Memory4"
Index=-1; StartByte=0; MemorySize=64000; bValue=true; cValue=123; ucValue=255; shValue=32100; ushValue=65535; nValue=2147012345; fValue=1234.56789012; dValue=1234.56789012; sValue0="Контроль = 1234.56789"
sValue1="Контроль = 9876.54321"; sValue2="Привет мир!!!"; sValue3="Миру мир!"; sValue4="Неправильное  имя";

Está tudo em uma linha, eu a mudei para cá para que não haja nenhuma largura anormal de tela aqui.

 
gyfto:

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.

Dê uma olhada no vídeo. Faça exatamente o mesmo. Se não funcionar, nós o descobriremos. Funciona para mim.
 
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.
 

TarasBY artmedia70 hoz

Obrigado, senhores oficiais!

 
CYBOPOB:

TarasBY artmedia70 hoz

Obrigado, senhores oficiais!

Você atirou em você mesmo? :)))
 
artmedia70:
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.

//+-------------------------------------------------------------------------------------+
//| Открытие длинной позиции                                                            |
//+-------------------------------------------------------------------------------------+
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.

Erro de parada mal colocado

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.