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

 
neoclassic >>:

Продавая USDCAD и покупая DX вы покупаете индекс канадца. На поведение индекса можно посмотреть с помощью того же СС - его динамика ничем не отличается от других индексов. Так что такая торговля на мой взгляд - будет 50/50.


É possível! Eu não vou discutir.

Por isso, continuaremos procurando. Procurando por outras ferramentas adequadas.

A propósito. Ontem perto do fim da negociação no índice Fduch I entrou (COMPRAR ZC + VENDER ZW)

Agora há {+300 pips (milho) -175 pips (trigo) }

 
neoclassic >>:

Продавая USDCAD и покупая DX вы покупаете индекс канадца. На поведение индекса можно посмотреть с помощью того же СС - его динамика ничем не отличается от других индексов. Так что такая торговля на мой взгляд - будет 50/50.


Em seguida, por favor, calcule a fórmula da fórmula do índice canadense. Se existir, é claro ))) ... Na verdade, é melhor levar o eur em "tandem". Como tem mais peso no índice. Basta colocar um sinal de menos na fórmula do indy para sua exibição normal. E você pode compartilhar como você calcula o coeficiente para o "tandem", ou seja, o peso dos pares no negócio?

 

Eu realmente ainda não fiz nenhum cálculo sério. Isto é - até agora, de olho no olho, - mais ou menos.

Para (Dax/Futsi) - a proporção de lotes 1,2/3 e delta não inferior a 200 T, - deduzi como resultado de muitas semanas de observação.

EURIPY+USDJPY - Eu levo os mesmos tamanhos de lote. Durante 2,5 semanas de trabalho on-line (delta = 20-30 pips) esta "sebe" não passou mais de 2-3 dias.

Fechei com lucro total de 5 a 20 pips.

 
"Vigilância por várias semanas"? Não seria mais fácil apenas coletar dados?
 

É pouco provável que dê certo. " Crazy Dax"(c) e "Pretty Footsie"(c) na "versão discutida" são negociados em diferentes plataformas.

O Futsi começa uma hora depois da Dax, diariamente. Além disso, há alguns dias na história em que o dax estava sendo negociado e o futsi estava "desligado", ou vice-versa. Assim, a história destes instrumentos é deslocada muitas vezes em relação uns aos outros e, por essa razão, tem pouca credibilidade.

 
rid >>:

Вряд ли получится. "Бешеный Дакс"(с) и "красотка Футси"(с) в "обсуждаемом варианте" торгуются на разных площадках.

Ежедневно футси стартует на час позже дакса. Более того, на истории достаточно много дней, когда дакс торговался, а футси был(а) "на выходных", или наоборот. Так что, история этих инструментов многократно сдвинута относительно др-друга и, по этой причине, мало достоверна.

Tudo bem. Nunca jogaremos melhor do que os grandes tios em seu campo. E não há nada para os grandes fazerem em um campo como este.

Este é o nosso pão e a nossa manteiga.

 
Fduch >>:
По открытиям баров

Estou fazendo um EA "quase-arbitrage" que pode ser executado no testador em ambos os instrumentos de "hedge" com comércio virtual simulado no segundo símbolo.

Há uma pergunta.

Por favor, informe.

Como faço para mudar sua função

//--------------------------------------------------------------------+
//ФУНКЦИЯ РАСЧЕТА СРЕДНЕСТАТ.СПРЕДА                    |
//--------------------------------------------------------------------+               
  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);
}

Não retornaria o spread médio dos últimos NBars ?

Mas para o penúltimo NBars.

Isto é, por um período de(2*NBars)-th bar até o NBars?

Pergunta a todos os que podem responder.

Porque estou aqui sentado, não consigo entender.

 
//--------------------------------------------------------------------+
//ФУНКЦИЯ РАСЧЕТА СРЕДНЕСТАТ.СПРЕДА                    |
//--------------------------------------------------------------------+               
  double CalculateAvarageSpread(string Symbol_1, string Symbol_2,
                              int Timeframe, int NBars)
{
   int k;   double N = 0;   double Sum = 0;
   for( k = NBars; 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);
}
 

Obrigado, getch! Vou colocá-lo em ação agora.

Acabou sendo mais fácil implementar o comércio virtual do segundo instrumento de hedge no testador do que eu pensava inicialmente.

Construí o trabalho abrindo preços porque o testador não devolve MarketInfo(Symbol_2,MODE_BID) Bids e Pergunta; mas os preços de abertura e fechamento são devolvidos pelo testador normalmente.

Agora o teste com tf=m1 para melhor precisão

Para aqueles que estão interessados e que precisam, aqui estão fragmentos de nossa solução de programa (rid+leonid553).

Abertura de sebe de 1 tipo (ou seja, vender1+por2) :

Eu ficaria feliz em receber comentários críticos.

double POINT_1 = MarketInfo( Symbol_1,MODE_POINT); 
double POINT_2 = MarketInfo( Symbol_2,MODE_POINT); 

double  Close_Symbol_1 = iClose( Symbol_1,Period(),1); 
double  Close_Symbol_2 = iClose( Symbol_2,Period(),1);
//-----------------------------------------------------



if ( TradeUP==true && флаг1==0) {//если условия первого хеджа
//соответствуют заданным  
//продаем 1-й символ и покупаем второй символ 
//-------------------------------------
if(Symbol()!= Symbol_2 && IsTesting() == True) {//при тестировании 2-го
// инструмента команду  не выполняем !
if ( NumberOfPositions( Symbol_1,OP_SELL, Magic)<1  ){//нет поз селл по 1-му символу
 SL=0; TP=0;
if( StopLoss>0)   SL= Bid_1+ POINT_1* StopLoss;
if( TakeProfit>0) TP= Bid_1- POINT_1* TakeProfit; 
ti= OpenPosition( Symbol_1, OP_SELL, Lots_1,0 ,0, Magic);
if (OrderSelect( ti, SELECT_BY_TICKET))
 ModifyOrder(-1, SL, TP, clModifySell);  
    }
                   }//if (IsTesting() == True)
//--------------------------------------
if(Symbol()!= Symbol_1 && IsTesting() == True) {//при тестировании 1-го
// инструмента команду не выполняем !
 if ( NumberOfPositions( Symbol_2,OP_BUY, Magic)<1) { //нет  поз бай по 2-му символу 
   SL=0; TP=0;
if( StopLoss>0)   SL= Bid_2- POINT_2* StopLoss;
if( TakeProfit>0) TP= Ask_2+ POINT_2* TakeProfit;   
ti= OpenPosition( Symbol_2, OP_BUY, Lots_2,0,0, Magic);
if (OrderSelect( ti, SELECT_BY_TICKET))
  ModifyOrder(-1, SL, TP, clModifyBuy); 
          }
                         }//if (IsTesting() == True) {         
//--------------------------------------------------                                                    
                                 } //если условия соответствуют заданным

A seguir, na verdade - o próprio mecanismo de comércio virtual no bloco de fechamento "hedge" :

 

A seguir, o próprio mecanismo de transação virtual no bloco "hedge closing":

O fechamento e o cálculo do lucro total é provavelmente de fundamental importância aqui!

if ( Symbol()== Symbol_1 ){//если прогоняем  1-го инструмент
//--------------Закрываем первый хедж -----------------------------------
//задаем и вычисляем номер бара открытия реальной селл 1-го 
//инструмента - с магиком 1
int N_of_barOP_SELL_1 = NumberOfBarOpenLastPos( Symbol_1,0,OP_SELL, Magic);
//задаем цену открытия этого бара на 2-м инстр., равную  цене открытия 
//виртуальной поз.BUY на втором иструменте(магик)
double OpenBUY_Symbol_2=iOpen( Symbol_2,Period(), N_of_barOP_SELL_1);


if (    ( ( PriceOpenLastPos( Symbol_1,OP_SELL, Magic)- Close_Symbol_1) +
        ( Close_Symbol_2- OpenBUY_Symbol_2) )  >=  CloseProfit* POINT_1 ){
 //если суммарный профит реальной сделки селл 1-го
// инструмента и "виртуальный" профит сделки Бай 2-го
// инструмента (хеджа TradeUP) по факту больше заданного
//значения, то - закрываем реальную OP_SELL 1-го символа и
// виртуальную OP_BUY второго символа
        ClosePosFirstProfit( Symbol_1,OP_SELL, Magic);
        if (IsTesting() != True){// при тестировании команду не выполняем ! 
        ClosePosFirstProfit( Symbol_2, OP_BUY, Magic);
                                  }
                         }
//------------ Закрываем второй хедж -------------------------------------
      аналогично
//----------------------------------------------                          
                         }//if ( Symbol()== Symbol_1 ){

Isso é tudo...

Da mesma forma, fazemos o fechamento do segundo instrumento em uma corrida de teste(se ( Symbol()== Symbol_2 )

Usado f-e Igor Kim(tire o chapéu para ele) :

OpenPosition(); - abrir uma pose.

ModifyOrder(); - modificação de posições.

NúmeroOfPosições() - número de posições

PriceOpenLastPos() - preço aberto da última posição

FecharPosFirstProfit() - fechamento de posições

NumberOfBarOpenLastPos() - retorna o número da barra da última posição aberta


Razão: