Divulgação do comércio no Meta Trader - página 5

 

Em poucas palavras:

1) O spread médio é calculado

2) O spread atual é calculado para os ÚLTIMOS preços

3) Se o spread atual estiver acima/abaixo do spread estatístico médio, a posição é aberta. (Mais baixo/mais alto é determinado dependendo da situação do mercado - contango ou backwardation)

 
Como calcular o spread médio (se não for um segredo)?
 
MetaDriver >> :

Não estou realmente certo do que é o crime. Ela estava em conluio com um corretor para movimentar os preços? Ou apenas com a massa dela? Se com sua própria massa, eu não vejo nenhuma atividade criminosa. Com, sim. Criminoso, não. E sua "grande pontuação" é apenas moralizante neurótica. Quando os bancos fazem isso, ninguém pensa em chamar isso de criminalidade. :)


Leia-o aqui (do post 310): http://www.procapital.ru/showthread.php?t=20648&page=21 e aqui http://www.procapital.ru/showthread.php?t=21115

 
rid >> :
Como calcular o spread médio (se não for um segredo)?


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);
}
 

Essa é a posição do escritório e é compreensível a razão. Mas se você olhar para os fatos - a cozinha fez uma oferta e uma oferta, que nada mais é do que uma oferta para fazer um acordo. O cliente concorda com essa oferta. Depois disso, acusar a cozinha de ser enganada e, ao mesmo tempo, argumentar que "ninguém, nem mesmo o comerciante mais brilhante que já negociou à noite com carne" ou "não sabíamos que a liquidez do mercado não é infinita" - é brincadeira de criança.

A posição da cozinha parece muito fraca, duvido que eles queiram levar o caso ao tribunal.

 

Sim... É claro que não é suave.

Em B. na demonstração, os pedidos só podem ser abertos em GCZ9 e GCG0, (Bid = Ask) preços simbólicos.

No comércio real a ordem é aberta em GCZ9#I e GCG0#I, (Bid != Ask).

E o spread é obtido de forma bastante adequada, mas não há mega-lucro.


Portanto, parece ser apenas mais uma maneira de construir belos gráficos de equilíbrio de demonstração.

 
Fduch >> :

Sim... É claro que não é suave.

Em B. na demonstração, os pedidos só podem ser abertos em GCZ9 e GCG0, (Bid = Ask) preços simbólicos.

No comércio real a ordem é aberta em GCZ9#I e GCG0#I, (Bid != Ask).

E o spread é obtido de forma bastante adequada, mas não há mega-lucro.


Portanto, parece ser apenas mais uma maneira de construir belos gráficos de equilíbrio de demonstração.


Não exatamente. ! Na demonstração, assim como nas posições reais são abertas / fechadas em Ask / Bid Ticker preços # I (e não de forma alguma LAST)!

Está no testador - o trabalho vai em preços ÚLTIMOS.

(E no testador B. a propagação do ticker #I não é levada em conta. Com tudo o que isso implica...)

Obrigado, a propósito, pelo código de propagação médio.

Funciona. Aproximadamente o mesmo que nos estados na p. 1.

Embora no real, é claro, não seja provável que seja tão suave. O escorregamento praticamente (na melhor das hipóteses) reduz todo o lucro obtido a zero. É preciso buscar os instrumentos mais adequados. Felizmente, há muitas mercadorias (ferramentas). Então poderemos conseguir espremer algo para fora.

O EA não pode ser executado no testador por razões óbvias. Portanto, teremos que monitorar a situação on-line. Isto não é uma coisa rápida a fazer...

 

Assumo ainda a implementação do cálculo de desvio de spread e cálculo de insumos não por preços LUST, mas por MarketInfo(ticker #I,MODE_ASK);

Além disso, estabelecer um limite para o tamanho do spread atual para cada símbolo:

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

E também estabelecer rigidamente os intervalos de tempo de trabalho. A fim de não cair em horas ilíquidas com uma enorme dispersão ao abrir uma posição.

Penso que desta forma será possível aumentar o lucro (ou diminuir o prejuízo) de cada comércio em 2-4 ticks.

 
Por causa dos ÚLTIMOS preços acontece que os carrapatos da sebe têm tido um bom lucro há muito tempo (estou olhando para isso agora - coloco no comentário), mas o gráfico e o terminal mostram um lucro exíguo ou, pior, ainda estão com prejuízo por causa da inércia dos ÚLTIMOS preços!
Assistindo agora em GBPUSD mais 6BH0, então é urgente mudar para preços MarketInfo(ticker #I,....
 

Tenho acompanhado o tema quase desde o início.

Mas, não concordo muito com a detecção do valor médio e não estou muito claro sobre a questão da abertura, ou seja, quando.

Eu descrevi a dispersão (diferença) de forma um pouco diferente. Pode ser grosseira, mas se mostra muito interessante como EA.

Se você puder falar mais alto.

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);
  }
Razão: