Spread trading in Meta Trader - pagina 5

 

In poche parole:

1) Si calcola lo spread medio

2) Lo spread attuale è calcolato per gli ultimi prezzi

3) Se lo spread corrente è sopra/sotto lo spread statistico medio, la posizione viene aperta. (Più basso/più alto è determinato a seconda della situazione del mercato - contango o backwardation)

 
Come si calcola lo spread medio (se non è un segreto)?
 
MetaDriver >> :

Non sono sicuro di quale sia il crimine. Era in combutta con un broker per spostare i prezzi? O solo con la sua pasta? Se con la sua stessa pasta, non vedo alcuna attività criminale. Di spirito, sì. Criminale, no. E il tuo "colpo grosso" è solo un moralismo nevrotico. Quando lo fanno le banche, nessuno pensa di chiamarla criminalità. :)


Leggilo qui (dal post 310): http://www.procapital.ru/showthread.php?t=20648&page=21 e qui http://www.procapital.ru/showthread.php?t=21115

 
rid >> :
Come si calcola lo spread medio (se non è un segreto)?


double CalculateAvarageSpread(string Symbol_1, string Symbol_2,
                              int Timeframe, int NBars)
{
   int k;
   double N = 0;
   double Sum = 0;
   for( k = 0; k < iBars( Symbol_1, Timeframe); k++)
   {
      if( N == NBars)
         break;

      int symb2Shift = iBarShift( Symbol_2, Timeframe,iTime( Symbol_1, Timeframe, k),true);
      if( symb2Shift != -1)
      {
         Sum += iClose( Symbol_1, Timeframe, k) - iClose( Symbol_2, Timeframe, symb2Shift);
         N++;
      }
   }
   double avarageSpread = Sum / N;
   return( avarageSpread);
}
 

Questa è la posizione dell'ufficio ed è comprensibile. Ma se guardate i fatti - la cucina ha fatto un'offerta e un'offerta, che non è altro che un'offerta per fare un accordo. Il cliente accetta l'offerta. Dopodiché, accusare la cucina di essere stata imbrogliata, e allo stesso tempo sostenere che "nessuno mai, nemmeno il trader più brillante, fa trading notturno sulla carne" o "non sapevamo che la liquidità del mercato non è infinita" - è un gioco da ragazzi.

La posizione della cucina sembra molto debole, dubito che vogliano portare il caso in tribunale.

 

Sì... Certo che non è liscio.

A B. in demo gli ordini possono essere aperti solo ai prezzi dei simboli GCZ9 e GCG0, (Bid = Ask).

Nel trading reale l'ordine viene aperto a GCZ9#I e GCG0#I, (Bid != Ask).

E lo spread è ottenuto abbastanza adeguatamente, ma non c'è alcun mega-profitto.


Quindi, sembra essere solo un altro modo per costruire bellissimi grafici di equilibrio demo.

 
Fduch >> :

Sì... Certo che non è liscio.

A B. in demo gli ordini possono essere aperti solo ai prezzi dei simboli GCZ9 e GCG0, (Bid = Ask).

Nel trading reale l'ordine viene aperto a GCZ9#I e GCG0#I, (Bid != Ask).

E lo spread è ottenuto abbastanza adeguatamente, ma non c'è alcun mega-profitto.


Quindi, sembra essere solo un altro modo per costruire bellissimi grafici di equilibrio demo.


Non esattamente. ! Sul demo, proprio come sul reale le posizioni sono aperte / chiuse ai prezzi Ask / Bid Ticker #I (e non affatto LAST)!

È nel tester - il lavoro va sui prezzi ULTIMO.

(E nel tester B. lo spread del ticker #I non è preso in considerazione. Con tutto ciò che implica...)

Grazie, a proposito, per il codice dello spread medio.

Funziona. Approssimativamente lo stesso che negli stati a pag. 1.

Anche se sul reale, naturalmente, è improbabile che sia così liscia. Lo slittamento riduce praticamente (nel migliore dei casi) a zero tutto il profitto ottenuto. Bisogna cercare gli strumenti più ottimali. Fortunatamente, c'è molta merce (strumenti). Allora potremmo riuscire a spremere qualcosa.

L'EA non può essere eseguito nel tester per ovvie ragioni. Pertanto, dovremo monitorare la situazione online. Questo non è un compito veloce...

 

Suppongo inoltre di implementare il calcolo della deviazione dello spread e il calcolo degli ingressi non dai prezzi LUST, ma da MarketInfo(ticker #I,MODE_ASK);

Inoltre, impostate un limite alla dimensione dello spread corrente per ogni simbolo:

spr = MarketInfo(ticker #I,MODE_ASK) -MarketInfo(ticker #I,MODE_BID) ;

E anche impostare rigidamente gli intervalli di tempo di lavoro. Per non cadere in ore illiquide con uno spread enorme quando si apre una posizione.

Penso che in questo modo sarà possibile aumentare il profitto (o diminuire la perdita) di ogni trade di 2-4 tick.

 
A causa degli ULTIMI prezzi succede che i ticker della copertura sono stati in buon profitto per molto tempo (lo sto guardando ora - l'ho messo nel commento), ma il grafico e il terminale mostrano un misero profitto o, peggio, sono ancora in perdita a causa dell'inerzia degli ULTIMI prezzi!
Guardando ora su GBPUSD più 6BH0, così urgentemente bisogno di passare a prezzi MarketInfo (ticker #I,....
 

Ho seguito l'argomento quasi dall'inizio.

Ma, non sono del tutto d'accordo con il rilevamento del valore medio e non sono del tutto chiaro sulla questione dell'apertura, cioè quando.

Ho descritto lo spread (differenza) in modo un po' diverso: può essere rozzo, ma si mostra molto interessante come EA.

Se puoi parlare più forte.

extern string Sum_1="GCG0";
extern string Sum_2="GCZ9";
double ARR[100,3];
double ARR_M[100];
int N=0;
int init()
{
ArrayInitialize( ARR,0);
ArrayInitialize( ARR_M,0);
}
int start()
  {
//----
double G0=MarketInfo( Sum_1,MODE_BID);
double Z9=MarketInfo( Sum_2,MODE_BID);
ARR[ N,0]= G0;
ARR[ N,1]= Z9;
ARR_M[ N]= G0- Z9;
N++;
if ( N>=100) N=0;
double SUM_0=0;
double SUM_1=0;
for (int r=0; r<100; r++)
{ 
SUM_0= SUM_0+( ARR[ r,0]- ARR[ r,1]);

}
double Aver= SUM_0/100;
double MAX=0;
double MIN=0;
for (int rr=0; rr<100; rr++)
{
if ( ARR_M[ rr]> MAX) MAX= ARR_M[ rr];
if ( ARR_M[ rr]< MIN) MIN= ARR_M[ rr];
}
Comment ("Aver  ",DoubleToStr( Aver,2),"   ", N,"   MAX  ",DoubleToStr( MAX,2)," MIN  ",DoubleToStr( MIN,2),"\n",
G0,"  ", Z9,"  ", G0- Z9);
//----
   return(0);
  }