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 1128

 
Vitalie Postolache:
Não foi isto que escrevi acima?

Ok, então nós escrevemos as configurações necessárias no arquivo, fechamos e o quê?

Em teoria, deve agora reabrir o Expert Advisor com os parâmetros necessários, e como um arquivo de texto pode fazer isso (não vejo nenhuma outra função na lista, embora neste caso, você precise de um exe)?

 
trader781:

Ok, então nós escrevemos as configurações necessárias no arquivo, fechamos e o quê?

Em teoria, agora deve reabrir a EA com os parâmetros necessários, e como um arquivo de texto pode fazer isso (não vejo outro arquivo na lista de funções, embora, neste caso, você precise de um exe)

Quando você executa a EA no inite, você carrega o arquivo e lê as configurações a partir dele e pronto, aqui está um pequeno exemplo.

void LoadParametres()
  {
   Print("*******************************************");
   Print("Start downloading data Magic = ",Magic," ",_Symbol);
   Print("*******************************************");
   int handle=FileOpen("Overturn_"+(string)Magic+"_"+_Symbol+".csv",FILE_CSV|FILE_READ);
   if(handle>0)
     {

      tiket=(int)FileReadNumber(handle);
      flag_series=FileReadBool(handle);
      TP = FileReadNumber(handle);
      SL = FileReadNumber(handle);
      series=(int)FileReadNumber(handle);
      Lots=FileReadNumber(handle);

      FileClose(handle);
      Print("*******************************************");
      Print("Loading data completed Magic = ",Magic," ",_Symbol);
      Print("*******************************************");
     }
  }


Ver

 

Bom dia a todos!

Tenho o botão "Auto-Trade" em meu terminal - coloquei um Expert Advisor em minha janela - ele gerou "alertas" (na aba "Experts") - pressionei o botão "Auto-Trade" (ativei) - pressionei o botão "Auto-Control" (ativei) - funciona bem. (ativado) - criou "alertas" (multa) - pressionou o botão "AutoTrade". (desligar o comércio) - ainda recebo "alertas".

A pergunta - este é o caso para todos?

Em caso afirmativo, é possível definir / escrever que os "alertas" só vão depois de pressionar este botão?

Talvez a pergunta sem a torre, mas ainda assim ficaria grato por uma resposta!

 
Roni Iron:

Bom dia a todos!

Tenho o botão "Auto-Trade" em meu terminal - coloquei um Expert Advisor em minha janela - ele gerou "alertas" (na aba "Experts") - pressionei o botão "Auto-Trade" (ativei) - pressionei o botão "Auto-Control" (ativei) - funciona bem. (ativado) - criou "alertas" (multa) - pressionou o botão "AutoTrade". (desligar o comércio) - ainda recebo "alertas".

A pergunta - este é o caso para todos?

Em caso afirmativo, é possível definir/escrever de forma que os "alertas" só sejam feitos depois de pressionar este botão?

Pode ser uma pergunta sem pensar, mas eu ainda ficaria grato por uma resposta!

O botão "Auto-Trading" permite e desabilita as operações comerciais,

Se você desativá-lo, os Conselheiros Especialistas e roteiros trabalharão

 
Roni Iron:

Bom dia a todos!

Tenho o botão "Auto-Trade" em meu terminal - coloquei um Expert Advisor em minha janela - ele gerou "alertas" (na aba "Experts") - pressionei o botão "Auto-Trade" (habilitei) - pressionei o botão "Auto-Control" (habilitei) - ele funcionou bem. (ativado) - criou "alertas" (multa) - pressionou o botão "AutoTrade". (desligar o comércio) - ainda recebo "alertas".

A pergunta - este é o caso para todos?

Em caso afirmativo, é possível definir/escrever de forma que os "alertas" só sejam feitos depois de pressionar este botão?

Talvez a pergunta sem a torre, mas ainda assim ficaria grato por uma resposta!

WatchTerminalInfoInteger(TERMINAL_TRADE_ALLOWED).
 
Roni Iron:

Bom dia a todos!

Tenho o botão "Auto-Trade" em meu terminal - coloquei um Expert Advisor em minha janela - meus "alertas" começaram (na aba "Experts") - pressionei o botão "Auto-Trade" (Auto-Trade) (ativado) - criou "alertas" (multa) - pressionou o botão "AutoTrade". (desligar o comércio) - ainda recebo "alertas".

A pergunta - este é o caso para todos?

Em caso afirmativo, é possível definir/escrever de forma que os "alertas" só sejam feitos depois de pressionar este botão?

Talvez a pergunta seja sem a torre, mas ainda assim ficaria grato por uma resposta!

É possível se você tiver um Expert Advisor (ou roteiro) à sua disposição em termos de pegar e fixar o código fonte. Você precisa colocar uma condição em todos os alertas para verificar se o botão está pressionado. Se o botão não for pressionado, não chame os alertas.
 

Homens, eu aposto EURUSD por exemplo 0,10, Take Profit depois de 100 pips, fechou com 10,00 de lucro, agora USDJPY tem 7,80 de lucro depois de 100 pips.

Eu tentei calcular o valor de um pip MarketInfo(Symbol(), MODE_POINT); recebo 0,001, onde estou sendo obtuso?

Tentei calcular meu lote mínimo a 100 pips para obter 10,00 ao invés de 7,8.
 
Evgeniy Oshurkevich:

Eu fiz uma aposta em EURUSD por exemplo 0,10, Take Profit após 100 pips, fechou com 10,00 de lucro, agora USDJPY tem 7,80 de lucro após 100 pips.

Eu tentei calcular o valor de um pip MarketInfo(Symbol(), MODE_POINT); eu recebo 0,001, onde eu sou estúpido aqui?

Tentei calcular meu lote mínimo em 100 pontos para conseguir 10,00, não 7,8.
MODE_TICKVALUE - preço na moeda de depósito de um pip (que é através de MODE_POINT) por 1 lote
 
Maxim Kuznetsov:
MODE_TICKVALUE - preço na moeda de depósito de um pip (que é através de MODE_POINT) por 1 lote
Ok, obrigado )
 

Preciso escrever os dados em um arquivo hst, para que eu possa usar os dados para construir um gráfico autônomo.

Estou lutando há dois dias, mas nada funciona.

Código:

#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
ulong    last_fpos=0;         //
int      HandleHistory=-1;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string symbol=Symbol();
   int per=Period()*9;

   ResetLastError();
   if(CreateHeader()==true)//если создали заголовок
     {
      HandleHistory=FileOpenHistory(symbol+(string)per+".hst",FILE_BIN|FILE_WRITE|FILE_SHARE_WRITE|FILE_SHARE_READ|FILE_ANSI);
      if(HandleHistory!=INVALID_HANDLE)
        {

         for(int i=199;i>0;i--)//заполняем данными
           {
            MqlRates r;
            r.time=Time[i];//просто пытаюсь записать, это так для примера
            r.open=Open[i];//просто пытаюсь записать, это так для примера
            r.low=Low[i];
            r.high=High[i];
            r.close=Close[i];
            r.tick_volume=(long)10;
            r.spread=0;
            r.real_volume=(long)10;
            uint byteswritten=FileWriteStruct(HandleHistory,r);
            Print("FileOpen OK ",byteswritten," ",Time[i]);
           }
       FileClose(HandleHistory);
       // FileFlush(HandleHistory);
        }
      else Print("Операция FileOpen неудачна, ошибка ",GetLastError());
     }
// long id=ChartOpen(symbol,per);
//Alert(id);
  }
//+------------------------------------------------------------------+
bool CreateHeader()//создаем файл с историей hst(заголовок)
  {

   int      file_version=401;
   string   c_copyright;
   string   c_symbol=Symbol();
   int i_period=Period()*9;
   int      i_digits=Digits;
   int      i_unused[13];
//---  
   ResetLastError();
   HandleHistory=FileOpenHistory(c_symbol+(string)i_period+".hst",FILE_BIN|FILE_WRITE|FILE_SHARE_WRITE|FILE_SHARE_READ|FILE_ANSI);
   if(HandleHistory<0)
     {
      Print("Error open ",c_symbol+(string)i_period,".hst file ",GetLastError());
      return(false);
     }
   c_copyright="(C)opyright 2003, MetaQuotes Software Corp.";
   ArrayInitialize(i_unused,0);
//--- write history file header
   FileWriteInteger(HandleHistory,file_version,LONG_VALUE);
   FileWriteString(HandleHistory,c_copyright,64);
   FileWriteString(HandleHistory,c_symbol,12);
   FileWriteInteger(HandleHistory,i_period,LONG_VALUE);
   FileWriteInteger(HandleHistory,i_digits,LONG_VALUE);
   FileWriteInteger(HandleHistory,0,LONG_VALUE);
   FileWriteInteger(HandleHistory,0,LONG_VALUE);
   FileWriteArray(HandleHistory,i_unused,0,13);
   return(true);
  }

Como resultado da execução, é criado um arquivo com histórico, mas não é criado um gráfico autônomo.

Aqui estão as informações sobre o gráfico

Por alguma razão, os dados são de 2003!

Como resultado, recebo um erro quando lanço o gráfico HistóricoBase: 196 erros em 'NZDCHF45'.

Eu entendo que escrevi algo errado. Não sei como escrevê-lo corretamente, tenho muito pouca informação. Quem sabe - por favor, avise.


Razão: