Ho bisogno del CODICEINIZIALE dell'indicatore tecnico IMA, l'indicatore che si chiama nel terminale MetaTrader4 nella scheda "Indicatori -> Tendenze -> Media Mobile".
È più chiaro ora?
Perché reinventare la ruota?
Fallo come OsMA o qualsiasi altro codice:
//+------------------------------------------------------------------+//| Moving Average of Oscillator |//+------------------------------------------------------------------+intOnCalculate (constint rates_total,
constint prev_calculated,
constdatetime& time[],
constdouble& open[],
constdouble& high[],
constdouble& low[],
constdouble& close[],
constlong& tick_volume[],
constlong& volume[],
constint& spread[])
{
int i,limit;
//---if(rates_total<=InpSignalSMA || !ExtParameters)
return(0);
//--- last counted bar will be recounted
limit=rates_total-prev_calculated;
if(prev_calculated>0)
limit++;
//--- macd counted in the 1-st bufferfor(i=0; i<limit; i++)
ExtMacdBuffer[i]=iMA(NULL,0,InpFastEMA,0,MODE_EMA,PRICE_CLOSE,i)-
iMA(NULL,0,InpSlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//--- signal line counted in the 2-nd buffer
SimpleMAOnBuffer(rates_total,prev_calculated,0,InpSignalSMA,ExtMacdBuffer,ExtSignalBuffer);
//--- main loopfor(i=0; i<limit; i++)
ExtOsmaBuffer[i]=ExtMacdBuffer[i]-ExtSignalBuffer[i];
//--- donereturn(0);
}
//+------------------------------------------------------------------+
Ciao a tutti. A pagina 943 ho postato uno script sulla descrizione del lavoro e degli esempi di librerie *dll. Ho capito un po' perché lo script non funziona.
1. #include<WinUser32.mqh> non è necessario in questo caso.
2. Condizione a parte if(lastkey != 0) Alert("lastkey=",lastkey); emette correttamente il codice del tasto premuto. Se si fa un ritardo, non ci sono dubbi su come funziona.
3. Condizione a parte if(lastmouse != 0) Alert("lastmouse=",lastmouse); emette stabilmente 512, anche se il mouse non si muove. È molto raro che saltino fuori altri numeri
In risposta al clic dei pulsanti del mouse.
4. if(lastwnd != 0) Alert("lastwnd=",lastwnd); restituisce una stringa vuota, molto probabilmente perché la libreria è vecchia, non Unicode.
Nella guida, leggete che l'editor può lavorare con librerie *dll, basta trascinarle nella finestra dell'editor. Non si apre.
Domanda. Qualcuno aiuterà a correggere "IdleLib.dll" o meglio per i soldi. Se da qualche parte c'è questo argomento (e altre *dll) mostra il link.
Siprega di consigliare come vietare l'AutoTrading nel mio EA (dopo qualche evento), cioè impostare il pulsante del terminaleAutoTrading per vietare. Ho provato a chiamare la costante ACCOUNT_TRADE_ALLOWED e cambiare il suo valore in false, ma il compilatore dice che questo non avrà effetto (ACCOUNT_TRADE_ALLOWED == false; //espressione non ha effetto)
#import "user32.dll"int GetForegroundWindow();
int PostMessageW(int hWnd, int Msg, int wParam, string lParam);
#import
#define WM_COMMAND 0x0111
после определенного события PostMessageW(GetForegroundWindow(), WM_COMMAND, 33020, (string) 0);
amavladi: Si prega di consigliare come prescrivere (dopo un certo evento) un divieto di AutoTrading in un EA, cioè impostare programmaticamente il pulsante del terminaleAutoTrading da vietare. Ho provato a chiamare la costante ACCOUNT_TRADE_ALLOWED e cambiare il suo valore in false, ma il compilatore dice che questo non avrà effetto (ACCOUNT_TRADE_ALLOWED == false; //espressione non ha effetto)
Questo compito (proibire all'EA di commerciare) si risolve molto facilmente con i semafori (vero/falso.... consentire/disconsentire il commercio).
Questo compito (proibire all'EA di commerciare) si risolve molto facilmente con i semafori (vero/falso.... consentire/disconsentire il commercio).
O è così importante premere il pulsante "AutoTrading"?
Se non posso disabilitare l'AutoTrading per tutto il terminale, allora naturalmente lo farò. Il problema è che ho diversi Expert Advisors in esecuzione sul mio terminale e
Voglio usare un EA separato per monitorare l'Equity e disabilitare l'AutoTrading per tutti gli EA simultaneamente in caso di emergenza, per esempio, quando Aquity è ridotto del 50%
Se non posso vietare l'AutoTrading per tutto il terminale, lo farò sicuramente. Il fatto è che ho diversi Expert Advisors in esecuzione sul mio terminale e
Volevo usare un EA per monitorare il Profitto del conto e disabilitare l'AutoTrading per tutti gli EA allo stesso tempo in caso di emergenza, per esempio, quando il Profitto del conto scende del 50%
Non l'ho controllato un po'. Perché funzioni dobbiamo sostituire WinUser32.mqh con l'allegato.
Controllato ora, funziona. Ed ecco altri espedienti
Saluti a tutti... So che il problema è il seguente. Quando compilo il codice, la variabile d prende il valore 110 e l'indicatore mostra tutto correttamente, ma con l'arrivo di una nuova barra, la variabile diventa 109 e, di conseguenza, incasina completamente tutte le letture dell'indicatore. Ho già fatto una cazzata..... Che cazzo????
int start()
{
int limit,Val,Oi;
drawonce();
//limit=Bars;if (b!=Bars){
b=Bars;
datetime ldt_BeginDay = iTime (NULL, PERIOD_D1,Q);
int li_Bar = iBarShift (NULL, 0, ldt_BeginDay);
d=0;
for(int i=li_Bar-10; i>=0; i--){
if (curDay!=TimeDay(Time[i])) {
curDay=TimeDay(Time[i]);
OOO=iClose(NULL,PERIOD_D1,Q-d+1)-iOpen(NULL,PERIOD_D1,Q-d+1);
if (volarr[Q-d]!=0) Val=volarr[Q-d]-volarr[Q-d+1];
if (oiarr[Q-d]!=0) Oi=oiarr[Q-d]-oiarr[Q-d+1];
d++;
}
Buffer1[i]=Val;
Buffer2[i]=Oi;
Buffer3[i]=OOO;
}
}
WindowRedraw();
Comment(Q," ",d);
return(0);
}
Perché durante la compilazione un valore è variabile, ma con l'arrivo di una nuova barra la variabile cambia?????
Ho bisogno del CODICE INIZIALE dell'indicatore tecnico IMA, l'indicatore che si chiama nel terminale MetaTrader4 nella scheda "Indicatori -> Tendenze -> Media Mobile".
È più chiaro ora?
Perché reinventare la ruota?
Fallo come OsMA o qualsiasi altro codice:
O non ti fidi categoricamente di Metaquotes?
Ciao a tutti. A pagina 943 ho postato uno script sulla descrizione del lavoro e degli esempi di librerie *dll. Ho capito un po' perché lo script non funziona.
1. #include<WinUser32.mqh> non è necessario in questo caso.
2. Condizione a parte if(lastkey != 0) Alert("lastkey=",lastkey); emette correttamente il codice del tasto premuto. Se si fa un ritardo, non ci sono dubbi su come funziona.
3. Condizione a parte if(lastmouse != 0) Alert("lastmouse=",lastmouse); emette stabilmente 512, anche se il mouse non si muove. È molto raro che saltino fuori altri numeri
In risposta al clic dei pulsanti del mouse.
4. if(lastwnd != 0) Alert("lastwnd=",lastwnd); restituisce una stringa vuota, molto probabilmente perché la libreria è vecchia, non Unicode.
Nella guida, leggete che l'editor può lavorare con librerie *dll, basta trascinarle nella finestra dell'editor. Non si apre.
Domanda. Qualcuno aiuterà a correggere "IdleLib.dll" o meglio per i soldi. Se da qualche parte c'è questo argomento (e altre *dll) mostra il link.
Si prega di consigliare come prescrivere (dopo un certo evento) un divieto di AutoTrading in un EA, cioè impostare programmaticamente il pulsante del terminaleAutoTrading da vietare. Ho provato a chiamare la costante ACCOUNT_TRADE_ALLOWED e cambiare il suo valore in false, ma il compilatore dice che questo non avrà effetto (ACCOUNT_TRADE_ALLOWED == false; //espressione non ha effetto)
Questo compito (proibire all'EA di commerciare) si risolve molto facilmente con i semafori (vero/falso.... consentire/disconsentire il commercio).
O è importante premere il pulsante "Auto Trade"?
Questo compito (proibire all'EA di commerciare) si risolve molto facilmente con i semafori (vero/falso.... consentire/disconsentire il commercio).
O è così importante premere il pulsante "AutoTrading"?
Se non posso disabilitare l'AutoTrading per tutto il terminale, allora naturalmente lo farò. Il problema è che ho diversi Expert Advisors in esecuzione sul mio terminale e
Voglio usare un EA separato per monitorare l'Equity e disabilitare l'AutoTrading per tutti gli EA simultaneamente in caso di emergenza, per esempio, quando Aquity è ridotto del 50%
Se non posso vietare l'AutoTrading per tutto il terminale, lo farò sicuramente. Il fatto è che ho diversi Expert Advisors in esecuzione sul mio terminale e
Volevo usare un EA per monitorare il Profitto del conto e disabilitare l'AutoTrading per tutti gli EA allo stesso tempo in caso di emergenza, per esempio, quando il Profitto del conto scende del 50%
Non l'ho controllato un po'. Perché funzioni dobbiamo sostituire WinUser32.mqh con l'allegato.
Controllato ora, funziona. Ed ecco altri espedienti
E ho corretto il post precedente in modo che funzioni senza sostituire WinUser32.mqh
Saluti a tutti... So che il problema è il seguente. Quando compilo il codice, la variabile d prende il valore 110 e l'indicatore mostra tutto correttamente, ma con l'arrivo di una nuova barra, la variabile diventa 109 e, di conseguenza, incasina completamente tutte le letture dell'indicatore. Ho già fatto una cazzata..... Che cazzo????
Perché durante la compilazione un valore è variabile, ma con l'arrivo di una nuova barra la variabile cambia?????