[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 362

 
Vinin >> :

Qualcosa del genere ha funzionato per me.

>> GRAZIE MILLE!

 

Buon pomeriggio!

Ho preso una demo su Alpari oggi e sono stato sorpreso da cinque cifre decimali. Ho dovuto rifare l'EA, aggiungere un dieci.

Se non è difficile spiegare la differenza tra cinque e quattro cifre decimali o darmi un link dove si può leggere.

 
gvi2504 >> :

Buon pomeriggio!

Ho preso una demo su Alpari oggi e sono stato sorpreso da cinque cifre decimali. Ho dovuto rifare l'Expert Advisor, aggiungere un dieci.

Se non ti dispiace spiegarmi la differenza tra cinque e quattro cifre, o darmi un link dove posso leggerlo.


Questo è quello che faccio - ho impostato start() all'inizio (probabilmente meglio in init() ?):

// ```````````````````````````````
   double PointX = 0;
   if(Digits==5 || Digits==3) {
      PointX = Point * 10;
   }
   if(Digits==4 || Digits==2) {
      PointX = Point;
   }
// ```````````````````````````````


E poi uso "PointX" invece di "Point".

 
chief2000 >> :


Questo è quello che faccio - ho impostato start() all'inizio (probabilmente meglio in init() ?):


E poi uso "PointX" invece di "Point".





Grazie mille.

 
Shniperson писал(а) >>
>> Signori. come fare in modo che i valori delle barre su H1 siano presi in considerazione quando si fa trading su H4? per esempio if(......&& Close[0](barra H1)>High[1](barra H1) ???????????

più o meno qui... comunque questo è un esempio di codice funzionante per macd & ) || ( questo posto sottolineato combina la condizione del codice specifico

indicatore>0 && indicatore<=Signalindicator && indicatore>Signalindicator unisce H4 con H1 nel senso che la situazione in H4 e in H1 è la stessa per MAKD (o no - dipende da <=0 (meno o uguale a zero / possibile a MAKD) inoltre &&(contemporaneamente) permette di complicare la relazione)

MacdCurrent=indicatore_MAIN,0);
MacdPrevious=indicatore_MAIN,1);
SignalCurrent=indicatore_SIGNAL,0);
SignalPrevious=SIGNAL indicator,1);

total=OrdersTotal();
for(cnt=0;cnt<totale;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) // controlla il simbolo
{
if(OrderType()==OP_BUY) // la posizione lunga è aperta
{
if((indicatore>0 && indicatore<=Segnale indicatore && indicatore>Segnale indicatore) || ( indicatore<=0 && indicatore>0))
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // chiudere la posizione

Ma questo codice è di qualcun altro e non sono in grado di cambiarlo io stesso, questo è sicuro.

 
JEKA писал(а) >>
Ciao, penso che la domanda sia più per programmatori avanzati che per principianti come me, anche se la mia idea sarà utile a entrambi! Quindi l'essenza della domanda, è possibile scrivere un indicatore o consigliere basato su due indicatori? V-TBv6.ex4, 5_ZZ_Semafor.ex4 Vorrei scriverlo io stesso, ma k sozhily non possiedo tali conoscenze, e vorrei cercare aiuto da coloro che anche interesesito questa idea o a coloro che hanno le conoscenze necessarie in questo settore.

c'è un consulente di trading su ma e mcd.

Ma per aprire, Maqd per chiudere

I Ma sono usati semplicemente sull'apertura nel codice per la Posizione Aperta (negli script che vengono insieme al terminale questi sono Ma e Poppy), un blocco in cui un indicatore (Ma) va alla Chiusura (Poppy).

se due indicatori sono richiesti allo stesso tempo, due indicatori sono dichiarati nel blocco richiesto e i loro valori sono combinati tramite

void CheckForClose()
{
doppio MacdCurrent, MacdPrevious, SignalCurrent;
doppio SignalPrevious;
int cnt, ticket, totale;

MacdCurrent=iMACD(NULL,0,MACD_FastEMA,MACD_SlowEMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,0);
MacdPrevious=iMACD(NULL,0,MACD_FastEMA,MACD_SlowEMA,MACD_SMA,PRICE_CLOSE,MODE_MAIN,1);
SignalCurrent=iMACD(NULL,0,MACD_FastEMA,MACD_SlowEMA,MACD_SMA,PRICE_CLOSE,MODE_SIGNAL,0);
SignalPrevious=iMACD(NULL,0,MACD_FastEMA,MACD_SlowEMA,MACD_SMA,PRICE_CLOSE,MODE_SIGNAL,1);

total=OrdersTotal();
for(cnt=0;cnt<totale;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) // controlla il simbolo
{
if(OrderType()==OP_BUY) // la posizione lunga è aperta
{
if((*>0 && *<=* && *>* ) || (*<=0 && *>0))
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // chiudere la posizione
tek_mode=1;
return(0); // uscire
}

}
else // vai alla posizione corta
{
if((Macd*<0 && Macd*>=* && *<* ) || (*>=0 && *<0))
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // chiudere la posizione
tek_mode=-1;
return(0); // uscire
}
}
}
}
}
//+------------------------------------------------------------------+

dove tek_mode=-1; è usato per tagliare il valore dell'instant replay. || e && permettono di usare due gruppi di condizioni come uno solo.

 

Si prega di avvisare.

Come ottenere i tick da MT4 a Matlab dalla mia DLL in modo intelligente e il più razionale possibile?

Qualcuno ha probabilmente fatto una cosa del genere.

Da MT in termini generali:

inizio()

{

fMyDll(Bid); // passa l'offerta nella funzione dalla mia dll con ogni nuovo tick

}

qual è il metodo di scambio?

 
Quando si testano le strategie, c'è un limite al numero di combinazioni di parametri? Cioè il numero di passaggi del tester.
 
Rielaborato l'indicatore VSI. È un po' sottosviluppato. Qualcuno può dirmi dov'è l'errore?
File:
vsi_twin.mq4  4 kb
 
nikost писал(а) >>
Rielaborato l'indicatore VSI. È un po' sottosviluppato. Qualcuno può dirmi dov'è l'errore?
File: