Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 560

 
Pode dizer-me o que devo escrever no código para que as encomendas não abram em cada carrapato?
 
int OnInit()
  {
   double LotSize(string symbol,datetime tbar)
     {
      double size;
      string BQ,currency=AccountCurrency();
      switch(MarketInfo(symbol,MODE_PROFITCALCMODE))
        {
         case 0:
           {
            int sbar=iBarShift(symbol,0,tbar);
            size=MarketInfo(symbol,MODE_LOTSIZE);
            if(StringSubstr(symbol,3,3)=="USD") break;
            if(StringSubstr(symbol,0,3)=="USD") size=size/iClose(symbol,0,sbar);
            else
              {
               BQ=StringSubstr(symbol,0,3)+"USD";
               if(iClose(BQ,0,0)==0) BQ="USD"+StringSubstr(symbol,0,3);
               if(iClose(BQ,0,0)==0) break;
               int BQbar=iBarShift(BQ,0,tbar);
               if(StringSubstr(BQ,0,3)=="USD") size=size/iClose(BQ,0,BQbar)/iClose(symbol,0,sbar);
               else size=size*iClose(BQ,0,BQbar)/iClose(symbol,0,sbar);
              }
           }
         break;
         case 1: size=MarketInfo(symbol,MODE_LOTSIZE); break;
         case 2: size=MarketInfo(symbol,MODE_TICKVALUE)/MarketInfo(symbol,MODE_TICKSIZE);
        }
      if(currency!="USD")
        {
         BQ=currency+"USD";
         if(iClose(BQ,0,0)==0)
           {
            BQ="USD"+currency;
            size*=iClose(BQ,0,iBarShift(BQ,0,tbar));
           }
         else size/=iClose(BQ,0,iBarShift(BQ,0,tbar));
        }
      return(size);
     }
Há dois erros ao compilar: Não consigo perceber o que está errado e como corrigi-lo. Dêem-me uma dica.
 
Alexandr Saprykin:
Dois erros durante a compilação: não consigo perceber o que está errado e como corrigi-lo. Poderia dizer-me, por favor, como repará-lo?
Os telepatas estão de férias e não têm cabeçalho ou extensão no cabeçalho do código. Como sei o que é e em que língua está :)
 
Karputov Vladimir:
Os telepatas estão de férias e não têm um cabeçalho ou uma extensão no código do cabeçalho. Vá descobrir em que consiste e em que língua está :)

Para não telepatas))))

//+------------------------------------------------------------------+
//|                                                   Break Even.mq4 |
//|                                                 Copyright 2016,  |
//|                                         /ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, "
#property link      "/ru"
#property version   "1.00"
#property strict
#property indicator_chart_window   //отображение внутри основного окна
#property indicator_buffers 1
#property indicator_plots   1
//--- plot BreakEven
#property  indicator_label1  "BreakEven"     //название индикатора
#property  indicator_type1   DRAW_LINE      //рисовать линией
#property  indicator_color1  clrGold       // цвет индикатора
#property  indicator_style1  STYLE_SOLID  //стиль индикатора
#property  indicator_width1  1
//--- indicator buffers
double         BreakEvenBuffer[];
//+------------------------------------------------------------------+
//| Рассчитываем точку безубыточности                                |
//+------------------------------------------------------------------+
int OnInit()
  {
   double LotSize(string symbol,datetime tbar)
     {
      double size;
      string BQ,currency=AccountCurrency();
      switch(MarketInfo(symbol,MODE_PROFITCALCMODE))
        {
         case 0:
           {
            int sbar=iBarShift(symbol,0,tbar);
            size=MarketInfo(symbol,MODE_LOTSIZE);
            if(StringSubstr(symbol,3,3)=="USD") break;
            if(StringSubstr(symbol,0,3)=="USD") size=size/iClose(symbol,0,sbar);
            else
              {
               BQ=StringSubstr(symbol,0,3)+"USD";
               if(iClose(BQ,0,0)==0) BQ="USD"+StringSubstr(symbol,0,3);
               if(iClose(BQ,0,0)==0) break;
               int BQbar=iBarShift(BQ,0,tbar);
               if(StringSubstr(BQ,0,3)=="USD") size=size/iClose(BQ,0,BQbar)/iClose(symbol,0,sbar);
               else size=size*iClose(BQ,0,BQbar)/iClose(symbol,0,sbar);
              }
           }
         break;
         case 1: size=MarketInfo(symbol,MODE_LOTSIZE); break;
         case 2: size=MarketInfo(symbol,MODE_TICKVALUE)/MarketInfo(symbol,MODE_TICKSIZE);
        }
      if(currency!="USD")
        {
         BQ=currency+"USD";
         if(iClose(BQ,0,0)==0)
           {
            BQ="USD"+currency;
            size*=iClose(BQ,0,iBarShift(BQ,0,tbar));
           }
         else size/=iClose(BQ,0,iBarShift(BQ,0,tbar));
        }
      return(size);
     }
//--- indicator buffers mapping
   SetIndexBuffer(0,BreakEvenBuffer);

//---
   return(INIT_SUCCEEDED);
  }
 
Alexandr Saprykin:

Para aqueles que não são telepáticos))))

Tirar a função LotSize do OnInit().
 
edutak:

Erro de sugestão lógica, porque é que ordens opostas não se abrem?

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Perguntas de principiantes

Karputov Vladimir, 2016.04.16 13:04

Os telepatas estão de férias e não tem um cabeçalho ou uma extensão no cabeçalho do código. Vá descobrir em que consiste e em que língua está :)

 
Karputov Vladimir:

Precisa de descrever o algoritmo?
 
edutak:
Precisa de descrever o algoritmo?

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Perguntas de principiantes

Karputov Vladimir, 2016.04.16 13:04

Os telepatas estão de férias e não tem um cabeçalho ou uma extensão no cabeçalho do código. Vá descobrir em que consiste e em que língua está :)

 
savinkins:
Tenho o nome de utilizador e palavra-passe por defeito para o terminal. Sem nome de servidor na lista de selecção, eu copio-o. Agora não tenho quaisquer agentes na lista da rede, embora o balanço apareça.
 
savinkins:

Para actualizar o terminal, ligue-se ao servidor de negociação MetaQuotes-Demo.


Razão: