Artyom Trishkin: Quindi controlla il numero di posizioni aperte sulla candela zero di M15. Se hai già una posizione ed è aperta su una candela M15 null, allora non aprirne altre.
Non so molto di programmazione, ma questo modulo si occupa di questo
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++; }
Ma il problema è che quando l'ordine viene chiuso da SL o TP, il prossimo segnale a M15 lo aprirà di nuovo.
Artyom Trishkin: All'interno della classe, fate delle stampe ai valori. E poi guardate nel log cosa verrà stampato quando lo script viene eseguito ;)
Le stampe possono essere inserite solo all'interno di una funzione, ma come chiamare questa funzione per far funzionare la stampa o l'avviso non lo capisco. Potete aiutarmi a sistemare il mio codice con tre semplici variabili? Faccio tutto come descritto nell'articolo, ma l'editore non lo accetta o manca qualcosa, in ogni caso un muro, ecco perché chiedo aiuto. Grazie per SKC.
Quindi controlla il numero di posizioni aperte sulla candela zero di M15. Se hai già una posizione ed è aperta su una candela M15 null, allora non aprirne altre.
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++;
}
Non sono molto bravo a programmare, ma questo modulo lo fa
}
Prova a fare un controllo per una nuova barra su 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;
Prova una nuova barra di controllo su 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;
Non sono molto bravo a programmare, ma questo modulo lo fa
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++;
}
No, non è assolutamente quello che fa questo pezzo di codice.
Devi controllare che la barra di apertura della posizione sul periodo M15 non sia uguale a zero - allora puoi aprire una posizione:
{
// код открытия позиции
}
Ciao, aiutami con le classi, cosa sto sbagliando?
classe ASDCiao, aiutami con le classi, cosa sto sbagliando?
classe ASDIniziate leggendo l'articolo.
Lo leggo, ma non lo capisco bene.
Ecco cosa ottengo:
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;
};
sceneggiatura:
ASD ar;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
ar.a=1;
ar.b=3;
Alert(ar.d);
}
//+------------------------------------------------------------------+
L'allarme dà zero. Cosa c'è che non va?
Lo leggo, ma non lo capisco bene.
Ecco cosa ottengo:
classe:
L'allarme dà zero. Cosa c'è che non va?
È difficile inserire il codice tramite il pulsante SRC?
Ho inserito il codice corretto per voi.
Lo leggo, ma non lo capisco bene.
Ecco cosa ottengo:
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;
};
sceneggiatura:
ASD ar;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
ar.a=1;
ar.b=3;
Alert(ar.d);
}
//+------------------------------------------------------------------+
L'allarme dà zero. Cosa c'è che non va?
All'interno della classe, fate delle stampe ai valori. E poi guardate nel log cosa verrà stampato quando lo script viene eseguito ;)