Ho costruito il mio primo Expert Advisor dai codici gentilmente forniti (un ringraziamento speciale aMakarFX_ per la motivazione e il codice)
Tutto funziona come dovrebbe, ma con un problema. Non so dove cercarlo.
L'algoritmo è il seguente:
c'è un segnale - l'ordine si apre
chiuderlo usando stop o take order in punti, o dopo che i limiti di profitto e perdita sono stati raggiunti in depo valuta CountLoss e CountProfit. (quello che viene prima)
se uno stop - il prossimo ordine con un margine, se un take, CountProfit, CountLoss - il lotto viene riportato a quello iniziale
se lo Stop Loss è impostato su CountLoss , l'ordine successivo viene aperto con il lotto minimo, per esempio, invece del lotto di partenza:
nelle variabili esterne il lotto di partenza 0,02 è impostato, il prossimo ordine a CountLoss sarà il lotto 0,01.
Ho costruito il mio primo Expert Advisor dai codici gentilmente forniti (un ringraziamento speciale aMakarFX_ per la motivazione e il codice)
Tutto funziona come dovrebbe, ma con un problema. Non so dove cercarlo.
L'algoritmo è il seguente:
c'è un segnale - l'ordine si apre
chiuderlo usando stop o take order in punti, o dopo che i limiti di profitto e perdita sono stati raggiunti in depo valuta CountLoss e CountProfit. (quello che viene prima)
se uno stop - il prossimo ordine con un margine, se un take, CountProfit, CountLoss - il lotto viene riportato a quello iniziale
se lo Stop Loss è impostato su CountLoss , l'ordine successivo viene aperto con il lotto minimo, per esempio, invece del lotto di partenza:
nelle variabili esterne il lotto di partenza 0,02 è impostato, il prossimo ordine a CountLoss sarà il lotto 0,01.
Qualcuno può dirmi dov'è l'errore?
Guardate cosa ho cambiato nella funzione double Lots()
Stamperà una volta quando appare un'operazione non redditizia
Grazie per il pensiero. Ho confrontato l'orario di chiusura dell'ordine attuale con quello dell'ordine precedente e tutto è andato come doveva. Ho anche fatto la funzione per aprire un ordine nella direzione opposta con uno stop loss, anche se non ha aiutato molto.
Petronet: Grazie, ho capito l'idea. Ho confrontato l'orario di chiusura dell'ordine attuale con quello dell'ordine precedente e tutto è andato come doveva. Ho anche fatto la funzione di aprire un ordine nella direzione opposta con uno stop loss, anche se non ha aiutato molto.
Buon pomeriggio a tutti. Cerco di implementare il calcolo dei profitti e degli stop usando l'indicatore atr. La fermata funziona bene. Ma il profitto è sempre impostato sullo stesso valore. Ecco il codice per il calcolo del profitto
if(Tip_tp == en_TP_po_atr)// ЕСЛИ ПРОФИТ ПО АТР//-------------------------------------------------------------------------------------------------+
{
tp =NormalizeDouble(iATR(NULL,PeriodForWork_sl,atr_sl_period,1),Digits);// ПРИСВАЕВАЕМ ЗНАЧЕНИЙ АТР ДЛЯ ВЫСТАВЛЕНИЯ СТОПЛОССАif(tp<stoplevel) // ЕСЛИ ПРОФИТ МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
tp=NormalizeDouble(tp*1.5,Digits); // ПРОФИТУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
}
tp= NormalizeDouble(tp*Point, Digits());// НОРМАЛИЗУЕМ ПРОФИТ, ЧТОБЫ РАБОТАЛО НА ЛЮБЫХ КАТИРОВКАХ//+--КОНЕЦ РАСЧЁТА ПРОФИТА---------------------------------------------------------------------- Разделитель ---+
Qual è l'errore che il profitto ha sempre lo stesso valore? Eh?
Buon pomeriggio a tutti. Cerco di implementare il calcolo dei profitti e degli stop usando l'indicatore atr. La fermata funziona bene. Ma il profitto è sempre impostato sullo stesso valore. Ecco il codice per il calcolo del profitto
Qual è l'errore che il profitto ha sempre lo stesso valore? Eh?
// ЕСЛИ ПРОФИТ ПО АТР//-------------------------------------------------------------------------------------------------+if(Tip_tp == en_TP_po_atr)
{
tp =NormalizeDouble(iATR(NULL,PeriodForWork_sl,atr_sl_period,1),Digits);// ПРИСВАЕВАЕМ ЗНАЧЕНИЙ АТР ДЛЯ ВЫСТАВЛЕНИЯ СТОПЛОССАif(tp<stoplevel) // ЕСЛИ ПРОФИТ МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
tp=NormalizeDouble(tp*1.5,Digits); // ПРОФИТУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
}
//+--КОНЕЦ РАСЧЁТА ПРОФИТА---------------------------------------------------------------------- Разделитель ---+
Grazie per il tuo aiuto - ho cambiato un pezzo di codice e tutto ha funzionato. Ma puoi descrivere a parole qual era l'errore, visto che non riesco a superarlo a occhio?
DanilaMactep: Grazie per il tuo aiuto - ho cambiato un pezzo di codice - tutto ha funzionato. Ma puoi descrivere a parole qual è stato l'errore, visto che non riesco ad andare avanti a occhio?
il tuo codice è stato diviso
В этой части кода ты задаешь tp значение АТРif(Tip_tp == en_TP_po_atr)// ЕСЛИ ПРОФИТ ПО АТР//-------------------------------------------------------------------------------------------------+
{
tp =NormalizeDouble(iATR(NULL,PeriodForWork_sl,atr_sl_period,1),Digits);// ПРИСВАЕВАЕМ ЗНАЧЕНИЙ АТР ДЛЯ ВЫСТАВЛЕНИЯ СТОПЛОССАif(tp<stoplevel) // ЕСЛИ ПРОФИТ МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
tp=NormalizeDouble(tp*1.5,Digits); // ПРОФИТУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
}
А в этой части ты обнуляешь предыдущее действие и задаешь непонятно что...
tp= NormalizeDouble(tp*Point, Digits());// НОРМАЛИЗУЕМ ПРОФИТ, ЧТОБЫ РАБОТАЛО НА ЛЮБЫХ КАТИРОВКАХ
Buon pomeriggio, per favore aiutatemi a far funzionare il mio terminale - il mercato non funziona. Voglio scaricare un indicatore gratuito dal mercato e non posso.
Ho cambiato la password, riavviato, ma non funziona niente.
Il programma registra quanto segue
2021.08.23 11:54:18.236 MQL5 Mercato non è riuscito a scaricare il prodotto 'MACD Intraday Trend'(www.mql5.com:443 invio fallito [426: ])
Ho costruito il mio primo Expert Advisor dai codici gentilmente forniti (un ringraziamento speciale aMakarFX_ per la motivazione e il codice)
Tutto funziona come dovrebbe, ma con un problema. Non so dove cercarlo.
L'algoritmo è il seguente:
c'è un segnale - l'ordine si apre
chiuderlo usando stop o take order in punti, o dopo che i limiti di profitto e perdita sono stati raggiunti in depo valuta CountLoss e CountProfit. (quello che viene prima)
se uno stop - il prossimo ordine con un margine, se un take, CountProfit, CountLoss - il lotto viene riportato a quello iniziale
se lo Stop Loss è impostato su CountLoss , l'ordine successivo viene aperto con il lotto minimo, per esempio, invece del lotto di partenza:
nelle variabili esterne il lotto di partenza 0,02 è impostato, il prossimo ordine a CountLoss sarà il lotto 0,01.
Qualcuno può dirmi dov'è l'errore?
Ho costruito il mio primo Expert Advisor dai codici gentilmente forniti (un ringraziamento speciale aMakarFX_ per la motivazione e il codice)
Tutto funziona come dovrebbe, ma con un problema. Non so dove cercarlo.
L'algoritmo è il seguente:
c'è un segnale - l'ordine si apre
chiuderlo usando stop o take order in punti, o dopo che i limiti di profitto e perdita sono stati raggiunti in depo valuta CountLoss e CountProfit. (quello che viene prima)
se uno stop - il prossimo ordine con un margine, se un take, CountProfit, CountLoss - il lotto viene riportato a quello iniziale
se lo Stop Loss è impostato su CountLoss , l'ordine successivo viene aperto con il lotto minimo, per esempio, invece del lotto di partenza:
nelle variabili esterne il lotto di partenza 0,02 è impostato, il prossimo ordine a CountLoss sarà il lotto 0,01.
Qualcuno può dirmi dov'è l'errore?
Guardate cosa ho cambiato nella funzione double Lots()
Stamperà una volta quando appare un'operazione non redditizia
Grazie, ho capito l'idea. Ho confrontato l'orario di chiusura dell'ordine attuale con quello dell'ordine precedente e tutto è andato come doveva. Ho anche fatto la funzione di aprire un ordine nella direzione opposta con uno stop loss, anche se non ha aiutato molto.
Più specificamente...
Buon pomeriggio a tutti. Cerco di implementare il calcolo dei profitti e degli stop usando l'indicatore atr. La fermata funziona bene. Ma il profitto è sempre impostato sullo stesso valore. Ecco il codice per il calcolo del profitto
Qual è l'errore che il profitto ha sempre lo stesso valore? Eh?
Buon pomeriggio a tutti. Cerco di implementare il calcolo dei profitti e degli stop usando l'indicatore atr. La fermata funziona bene. Ma il profitto è sempre impostato sullo stesso valore. Ecco il codice per il calcolo del profitto
Qual è l'errore che il profitto ha sempre lo stesso valore? Eh?
Vedi cosa ho cambiato nella funzione Lots() doppia
super! grazie mille!
Grazie per il tuo aiuto - ho cambiato un pezzo di codice - tutto ha funzionato. Ma puoi descrivere a parole qual è stato l'errore, visto che non riesco ad andare avanti a occhio?
il tuo codice è stato diviso
Ho cambiato la password, riavviato, ma non funziona niente.
Il programma registra quanto segue
2021.08.23 11:54:18.236 MQL5 Mercato non è riuscito a scaricare il prodotto 'MACD Intraday Trend'(www.mql5.com:443 invio fallito [426: ])
Saluti, Olga