Makar, ti ringrazio molto per aver indicato i controlli da fare per evitare di mettere in difficoltà il server e bannare l'EAJ.
Controlli fatti in questo modo
livello mod stop per stop
//ПРОВЕРКА НА МОДЕ СТОП ЛЕВЕЛ- МИНИМАЛЬНЫЙ УРОВЕНЬ СТОПА if(sl<MarketInfo(Symbol(),MODE_STOPLEVEL)) // ЕСЛИ СТОПОЛС МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
sl= MarketInfo(Symbol(),MODE_STOPLEVEL);//СТОП ЛОССУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
livello di stop mod per il profitto
// ПРОВЕРКА ТЕЙК ПРОФИТА НА МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ УСТАНОВКИif(tp<MarketInfo(Symbol(),MODE_STOPLEVEL)) // ЕСЛИ ПРОФИТ МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
tp= MarketInfo(Symbol(),MODE_STOPLEVEL);// ПРОФИТУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
//---- ПРОВЕРКА НА РАЗРЕШЕНИЕ ТОРГОВ ПЕРЕД ОТКРЫТИЕМ ОРДЕРОВif(MarketInfo(Symbol(),MODE_TRADEALLOWED)==true)
{// начало есл торговля разрешена/*
куча проверок на условия открытия и само открытие ордеров
*/
} // КОЕНЦ ПРОВЕРКИ НА РАЗРЕШЕНИЕ ТОРГОВЛИelse//ИНАЧЕ ЕСЛИ ТОРГОВЛЯ НЕ РАЗРЕШЕНА
{ // НАЧАЛО ЭЛС ЕСЛИ ТОРГИ НЕ РАЗРЕШЕНЫ Print("ТОРГИ НЕ РАЗРЕШЕНЫ- ПЫТАТЬСЯ ОТКРЫТЬ ОРДЕРА НЕ БУДЕМ");
} // КОЕНЦ ЭЛС ЕСЛИ ТОРГИ НЕ РАЗРЕШЕНЫ
Controllo del lotto massimo e minimo
Prima ho ottenuto i valori del lotto massimo e del lotto minimo nelle variabili in questo modo
E poi controllo da qualche parte qui sotto mentre scrivo il Graal
if(lot<Min_Lot) lot=Min_Lot; //ЕСЛИ ЛОТ ПОЛУЧИЛСЯ МЕНЬШЕ ЧЕМ МИНИМАЛЬНЫЙ ЛОТ У БРОКЕРА ТО ЛОТ ПРИСВАЕМАЕМ МИНИМАЛЬНЫЙ ЛОТ У БРОКЕРАif(lot>Max_Lot) lot=Max_Lot; //ЕСЛИ ЛОТ ПОЛУЧИЛСЯ БОЛЬШЕ ЧЕМ МАКСИМАЛЬНЫЙ ЛОТ У БРОКЕРА ТО ОЛТ ПРИСВАЕВАЕМ МАКС ЛОТ У БРОКЕРА
È corretto o mi sbaglio?
Non ho controllato il cambio di passo del lotto perché il lotto è calcolato come percentuale del deposito e lì questo valore è moltiplicato per un punto e normalizzato - questo controllo può essere omesso - giusto, o dovrei farlo comunque? Se dobbiamo ancora controllare come scrivere questo assegno?
Il punto principale di tutti questi controlli è quello di avere sempre il valore corretto di stop, profitto e dimensione del lotto, quindi possiamo generalmente iniziare ad aprire gli ordini. Se tutti questi parametri sono a posto, l'Expert Advisor non disturba il server; ho capito bene?
//ПРОВЕРКА НА МОДЕ СТОП ЛЕВЕЛ- МИНИМАЛЬНЫЙ УРОВЕНЬ СТОПА if(sl<MarketInfo(Symbol(),MODE_STOPLEVEL)*1.5) // ЕСЛИ СТОПОЛС МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
sl= MarketInfo(Symbol(),MODE_STOPLEVEL)*1.5;//СТОП ЛОССУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
// ПРОВЕРКА ТЕЙК ПРОФИТА НА МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ УСТАНОВКИif(tp<MarketInfo(Symbol(),MODE_STOPLEVEL)*1.5) // ЕСЛИ ПРОФИТ МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
tp= MarketInfo(Symbol(),MODE_STOPLEVEL)*1.5;// ПРОФИТУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
Ciao a tutti, qualcuno ha avuto un problema con i punti penzolanti sul grafico trovato tramite iHighest/iLowest?
Preistoria: ho una minima esperienza di programmazione, sto scrivendo un indicatore in mql4 che dovrebbe visualizzare i punti sul grafico, trovati dalle condizioni di if e collegarli con delle linee. Logicamente, cerca i punti correttamente, ma li disegna con un offset, poi per 2 barre, poi per 3 barre. Ho allegato anche il file con il codice.
int start()
{
int counted_bars=IndicatorCounted(); //хранит количество посчитанных индикатором баров. Функция IndicatorCounted() возвращает количество неизмененных баров после прошлого вызова функции start().int n,limit;
int val_index;
if(counted_bars>0)
counted_bars--;
limit=Bars-counted_bars; //количество последних баров, которые нужно пересчитать.if(limit>barsToProcess)
limit=barsToProcess;
for(n=0; n<=limit; n++)
{
if((Close[n+1]>Open[n+1] && Open[n+2]>=Close[n+2]) || (Close[n+1]>Open[n+1] && Open[n+3]>Close[n+3]))
{
val_index=iLowest(NULL,0,MODE_LOW,3,n+1);
myAZBuffer[n]=Low[val_index];
ExtLowBuffer[n]=Low[val_index];
}
elseif((Open[n+1]>Close[n+1] && Close[n+2]>=Open[n+2]) || (Close[n+1]<Open[n+1] && Close[n+3]>Open[n+3]))
{
val_index=iHighest(NULL,0,MODE_HIGH,3,n+1);
myAZBuffer[n]=High[val_index];
ExtHighBuffer[n]=High[val_index];
}
}
return (0);
}
Ciao a tutti, qualcuno ha avuto un problema con i punti penzolanti sul grafico trovato tramite iHighest/iLowest?
Preistoria: ho una minima esperienza di programmazione, sto scrivendo un indicatore in mql4 che dovrebbe visualizzare i punti sul grafico, trovati dalle condizioni di if e collegarli con delle linee. Logicamente, cerca i punti correttamente, ma li disegna con un offset, poi per 2 barre, poi per 3 barre. Ho allegato anche il file con il codice.
I punti sono disegnati correttamente, senza un offset.
Se la condizione è soddisfatta e iHighest/iLowest sono più grandi o più piccoli degli attuali High/Low
i punti sono disegnati correttamente, senza offset
se la condizione è soddisfatta e iHighest/iLowest è maggiore o minore dell'attuale High / Low
poi disegna
Quindi, penso che sto iniziando a capire il mio errore) Quindi, al fine di visualizzare visivamente questi punti nel posto giusto, ho bisogno di inserire qualche contatore separato invece di n per myAZBuffer[n], ExtLowBuffer[n], ExtHighBuffer[n] ? ma come fare questo
azolotta: Così, penso che sto cominciando a capire il mio errore) Si scopre che per visualizzare visivamente questi punti nel posto giusto, ho bisogno di inserire qualche contatore separato invece di n per myAZBuffer[n], ExtLowBuffer[n], ExtHighBuffer[n] ? ma come farlo
No, avete capito bene.
la condizione utilizza due o tre barre della storia,
ecco perché disegna dopo 2-3 barre quando la condizione è soddisfatta
la condizione utilizza due o tre barre della storia,
ecco perché disegna dopo 2-3 barre quando la condizione è soddisfatta
OK, allora come faccio a rielaborare il codice se ho bisogno, per esempio, di scegliere il massimo più alto delle ultime 3 barre (che soddisfano le condizioni in if) e mettere un punto su di esso (proprio su questo alto!), poi anche trovare il punto basso.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
MakarFX , che funzione ha questo bind: che funzione svolge?
input int BarTrade = 5; // capisco che questo è il numero dei periodi tracciati di 5.
int TimeBarTrade=BarTrade*Period()*60; // come capisco, perché è moltiplicato per 60?
MakarFX , che funzione ha questo bind: che funzione svolge?
input int BarTrade = 5; // capisco che questo è il numero dei periodi tracciati di 5.
int TimeBarTrade=BarTrade*Period()*60; // come si capisce, perché è moltiplicato per 60?
BarTrade*Periodo()*60
numero di barre * timeframe corrente * 60 secondi
cioè la quantità di barre convertita in secondi
BarTrade*Periodo()*60
numero di barre * timeframe corrente * 60 secondi
cioè il numero di barre convertito in secondi
Puoi farlo in questo modo.
Se si escludono gli errori relativi a
MODE_STOPLEVEL, MODE_TRADEALLOWED, MODE_MINLOT, MODE_LOTSTEP, MODE_MAXLOT
allora i gufi non colpiranno il server.
Makar, ti ringrazio molto per aver indicato i controlli da fare per evitare di mettere in difficoltà il server e bannare l'EAJ.
Controlli fatti in questo modo
livello mod stop per stop
livello di stop mod per il profitto
Verifica dell'autorizzazione al commercio
Controllo del lotto massimo e minimo
Prima ho ottenuto i valori del lotto massimo e del lotto minimo nelle variabili in questo modo
E poi controllo da qualche parte qui sotto mentre scrivo il Graal
È corretto o mi sbaglio?
Non ho controllato il cambio di passo del lotto perché il lotto è calcolato come percentuale del deposito e lì questo valore è moltiplicato per un punto e normalizzato - questo controllo può essere omesso - giusto, o dovrei farlo comunque? Se dobbiamo ancora controllare come scrivere questo assegno?
Il punto principale di tutti questi controlli è quello di avere sempre il valore corretto di stop, profitto e dimensione del lotto, quindi possiamo generalmente iniziare ad aprire gli ordini. Se tutti questi parametri sono a posto, l'Expert Advisor non disturba il server; ho capito bene?
Grazie mille, Makar, per avermi detto quali controlli fare per evitare il server e bannare l'EAJ.
//ПРОВЕРКА НА МОДЕ СТОП ЛЕВЕЛ- МИНИМАЛЬНЫЙ УРОВЕНЬ СТОПА// ПРОВЕРКА ТЕЙК ПРОФИТА НА МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ УСТАНОВКИCi può essere un errore di 130 qui dovuto allo slittamento.
Io farei questo
Ciao a tutti, qualcuno ha avuto un problema con i punti penzolanti sul grafico trovato tramite iHighest/iLowest?
Preistoria: ho una minima esperienza di programmazione, sto scrivendo un indicatore in mql4 che dovrebbe visualizzare i punti sul grafico, trovati dalle condizioni di if e collegarli con delle linee. Logicamente, cerca i punti correttamente, ma li disegna con un offset, poi per 2 barre, poi per 3 barre. Ho allegato anche il file con il codice.
Ciao a tutti, qualcuno ha avuto un problema con i punti penzolanti sul grafico trovato tramite iHighest/iLowest?
Preistoria: ho una minima esperienza di programmazione, sto scrivendo un indicatore in mql4 che dovrebbe visualizzare i punti sul grafico, trovati dalle condizioni di if e collegarli con delle linee. Logicamente, cerca i punti correttamente, ma li disegna con un offset, poi per 2 barre, poi per 3 barre. Ho allegato anche il file con il codice.
I punti sono disegnati correttamente, senza un offset.
Se la condizione è soddisfatta e iHighest/iLowest sono più grandi o più piccoli degli attuali High/Low
disegna
i punti sono disegnati correttamente, senza offset
se la condizione è soddisfatta e iHighest/iLowest è maggiore o minore dell'attuale High / Low
poi disegna
Così, penso che sto cominciando a capire il mio errore) Si scopre che per visualizzare visivamente questi punti nel posto giusto, ho bisogno di inserire qualche contatore separato invece di n per myAZBuffer[n], ExtLowBuffer[n], ExtHighBuffer[n] ? ma come farlo
No, avete capito bene.
la condizione utilizza due o tre barre della storia,
ecco perché disegna dopo 2-3 barre quando la condizione è soddisfatta
No, avete capito bene.
la condizione utilizza due o tre barre della storia,
ecco perché disegna dopo 2-3 barre quando la condizione è soddisfatta