Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 647

 
simpleton:

Se forem necessários cálculos diferentes do preço total da posição, você pode "devolver" os valores de S1 e S2 à função chamada passando as próprias variáveis por referência, e retornar o sinal de erro da função. Ou seja, o protótipo da função chamada poderia ser assim: "bool fun(duplo &S1, duplo &S2);". A função de chamada inicia variáveis, passa-as para fun(), e, se fun() retorna verdadeiro, usa os valores das variáveis passadas (que podem ter nomes diferentes) como S1 e S2.

Obrigado! Roger. Exceto que com o erro no OrderSelect, não está claro como parar, exceto paracontinuar.

Apagado o correio atrasado, fez quase o mesmo que o descrito.

double CenaUsrednenija(const int type,const int Magic){
double nn=0,bb=0;
 double factb=0;
  int total=OrdersTotal();

for(int i=total-1; i>=0; i--)
  {
    if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
    if (OrderSymbol() != Symbol()) continue;  

   if(OrderSelect(i,SELECT_BY_POS))
     {
      if(OrderSymbol()==Symbol())
        {
         if(OrderType()==type && OrderMagicNumber()==Magic)
           {
            double op=OrderOpenPrice();
            double llot=OrderLots();
            double itog=op*llot;
            bb=bb+itog;
            nn=nn+llot;
            factb=NormalizeDouble(bb/nn,_Digits);
        //  Print("  type= ",type," Цена открытия= ",op, " Лот= ",llot, " itog=op*llot= ",itog, " factb=bb/nn= ",factb);
        
           }
        }
     }
  }  return(factb);  
}  
 

Eu não posso escrever uma função como esta.

- Se um pedido de VENDA estiver com um prejuízo de -1000 pips. então abrimos a mesma ordem de venda em 1000 pontos a partir da primeira. Se outro -1000p, abrimos outro pedido de VENDA, etc.

 
Top2n:

Eu não posso escrever uma função como esta.

- Se um pedido de VENDA estiver com um prejuízo de -1000 pips. então abrimos a mesma ordem de venda em 1000 pontos a partir da primeira. Se outro -1000p, abrimos outro pedido de VENDA, etc.


Qual é o problema aqui? Você seleciona o OrderSelect-order necessário, por exemplo, no bilhete, compara o lucro com o OrderProfit-order, e então envia um pedido para abrir mais um OrderSend.
 
Top2n:

Eu não posso escrever uma função como esta.

- Se um pedido de VENDA estiver com um prejuízo de -1000 pips. então abrimos a mesma ordem de venda em 1000 pontos a partir da primeira. Se outro -1000p, abrimos outro pedido de VENDA, etc.


De acordo com esta condição, a segunda ordem deve ser aberta ao preço atual que está a aproximadamente 1000 pontos do preço de abertura da primeira ordem, portanto não há nada de difícil - uma simples ordem para abrir uma nova posição.
 
Cavalheiros, alguém pode me dizer onde encontrar um arquivo de citações de melhor qualidade?
 
Top2n:
Cavalheiros, alguém pode me dizer onde encontrar um arquivo de citações de melhor qualidade?

Descarregamos o Tickstory e o usamos para descarregar carrapatos da Dukascopia, depois podemos exportá-los para o MT4, mas é apenas temporário, o terminal irá sobregravá-los com seus próprios arquivos. Ou seja, é apenas para o testador, portanto, a qualidade da simulação é de 99,9%.
 
evillive:

Você baixa o Tickstory e o usa para baixar ticks da Dukascopy, depois você pode exportá-los para o MT4, mas isto é apenas temporário, o terminal os sobregravará com seus próprios arquivos. Ou seja, é apenas para o testador, de modo que a qualidade da simulação é de 99,9%.

Sim, o tema, muito obrigado!)
 

Não consigo descobrir o que há de errado com o WindowTimeOnDropped(). Nenhum valor ao reiniciar para o gráfico( o tempo todo =0). Escreveu um pequeno código para verificá-lo.


//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- input parameters

double xBuffer[];
int init()
  {
   string short_name;
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,xBuffer);
//---- name for DataWindow and indicator subwindow label
   short_name="Mouse";
   IndicatorShortName(short_name);
   SetIndexLabel(0,short_name);
//----
   return(0);
  }

int start()
  {
  datetime Mouse=WindowTimeOnDropped();
  Alert(" Mouse= ",Mouse);
  xBuffer[0]=Mouse;
  return(0);
  }
 
Colegas, aconselhem como ignorar o evento noChartEvent(...) na EA?

O problema é que se você mudar o cronograma quando a EA estiver em funcionamento, a EA reinicializará e reabrirá os negócios. Por sua vez, os negócios que foram abertos antes permanecem "desacompanhados".

Como lutar? Tenho que redesenhar o gráfico por algum milagre, mas ele precisa de uma EA previamente inicializada.

 
intrade:
Colegas, aconselhem como ignorar o evento noChartEvent(...) na EA?

O problema é que se você mudar o cronograma quando a EA estiver em funcionamento, a EA reinicializará e reabrirá os negócios. Por sua vez, os negócios que foram abertos antes permanecem "desacompanhados".

Como lutar? Tenho que redesenhar o gráfico por algum milagre, mas ele precisa de uma EA previamente inicializada.


Para escrever as condições exatas e inequívocas de abertura!