Artyom Trishkin: Portanto, verifique o número de posições em aberto na vela M15 zero. Se você já tem uma posição e ela está aberta em uma vela nula M15, então não abra mais.
Eu não sei muito sobre programação, mas este módulo lida com isto
b=0; for (i=OrdersTotal()-1;i>=0;i--) { RefreshRates(); if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0; if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++; }
Mas a questão é que quando o pedido for fechado por SL ou TP, o próximo sinal em M15 o abrirá novamente.
Artyom Trishkin: Dentro da classe, faça impressões com os valores. E depois veja no registro o que será impresso quando o roteiro for executado ;)
As impressões só podem ser inseridas dentro de uma função, mas como chamar esta função para fazer a impressão ou alerta funcionar eu não entendo. Você pode ajudar consertando meu código com três variáveis simples???? Eu faço tudo como descrito no artigo, mas o editor não aceita ou falta alguma coisa, em qualquer caso uma parede, é por isso que estou pedindo ajuda. Obrigado por SKC.
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.
Portanto, verifique o número de posições em aberto na vela M15 zero. Se você já tem uma posição e ela está aberta em uma vela nula M15, então não abra mais.
for (i=OrdersTotal()-1;i>=0;i--)
{
RefreshRates();
if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
}
Eu não sou muito bom em programação, mas este módulo o faz
}
Tente fazer um controle para um novo bar no H1
for (i=OrdersTotal()-1;i>=0;i--)
{
RefreshRates();
if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
}
if( stM1 <= 20 && stM0 > 20 && stH0 > 70 && b==0 && opp != iTime(_Symbol,PERIOD_H1,0)) // покупка
{
opp = iTime(_Symbol,PERIOD_H1,0);
RefreshRates();
op = Ask;
Experimente um novo controle de barra no H1
for (i=OrdersTotal()-1;i>=0;i--)
{
RefreshRates();
if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
}
if( stM1 <= 20 && stM0 > 20 && stH0 > 70 && b==0 && opp != iTime(_Symbol,PERIOD_H1,0)) // покупка
{
opp = iTime(_Symbol,PERIOD_H1,0);
RefreshRates();
op = Ask;
Eu não sou muito bom em programação, mas este módulo faz isso
for (i=OrdersTotal()-1;i>=0;i--)
{
RefreshRates();
if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
}
Não, definitivamente não é isso que este pedaço de código faz.
Você precisa verificar se a barra de abertura de posição no período M15 não é igual a zero - então você pode abrir uma posição:
{
// код открытия позиции
}
Olá! Ajude-me com as aulas, o que estou fazendo de errado?
classe ASDOlá! Ajude-me com as aulas, o que estou fazendo de errado?
classe ASDComece lendo o artigo.
Eu o leio, mas não o entendo direito.
Eis o que eu recebo:
classe:
{
private:
// Здесь располагаются переменные и функции, доступные только внутри класса
int c(int m_a,int m_b)
{
m_a=a+b; m_b=a-b;
int m_d=m_a+m_b;
d=m_d;
return(c(m_a,m_b));
}
public:
int a;
int b;
int d;
};
roteiro:
ASD ar;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
ar.a=1;
ar.b=3;
Alert(ar.d);
}
//+------------------------------------------------------------------+
O alerta dá zero. O que está errado?
Eu o leio, mas não o entendo direito.
Eis o que eu recebo:
classe:
O alerta dá zero. O que há de errado com isso?
É difícil inserir o código através do botão SRC?
Eu inseri o código correto para você.
Eu o leio, mas não o entendo direito.
Eis o que eu recebo:
classe:
{
private:
// Здесь располагаются переменные и функции, доступные только внутри класса
int c(int m_a,int m_b)
{
m_a=a+b; m_b=a-b;
int m_d=m_a+m_b;
d=m_d;
return(c(m_a,m_b));
}
public:
int a;
int b;
int d;
};
roteiro:
ASD ar;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
ar.a=1;
ar.b=3;
Alert(ar.d);
}
//+------------------------------------------------------------------+
O alerta dá zero. O que está errado?
Dentro da classe, faça impressões com os valores. E depois veja no registro o que será impresso quando o roteiro for executado ;)