Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1823

 
Порт-моне тв #:

e sobre os outros pontos?

Trataremos das questões à medida que elas surgirem.

Primeiro você deve fazer uma tabela e definir o que deve estar lá e onde, e depois escrever as funções

 
Mihail Matkovskij #:

A função Cor deve retornar a cor, e não o dobro.

Não faria mal estudar o link que o motor do site adicionou também.

Obrigado. deixe-me lê-lo

 
Tretyakov Rostyslav #:

Trataremos das questões à medida que forem surgindo.

Primeiro você precisa fazer uma tabela e definir o que deve estar lá e onde, e depois escrever as funções

Basicamente posso fazer isso, o mais difícil para mim é escrever o preço em um arquivo e calcular o tempo

 
Порт-моне тв #:

Eu posso fazer isso em princípio, o mais difícil para mim é escrever o preço em um arquivo e calcular o tempo

Por que escrevê-lo em um arquivo, você pode fazer isso assim?


Também não é difícil, no momento em que você começa a contar

int iStart  = 0;
int iSeconds=20;
//---
   if(наступило событие)
      iStart=TimeCurrent(); // запомнили время в секундах
//---
   if((iStart+iSeconds)<=TimeCurrent()) // если время пришло
     {
      выполняем действие
     }


 
Tretyakov Rostyslav #:

Trataremos das questões à medida que forem surgindo.

Primeiro você tem que fazer uma tabela e definir o que deve estar lá e onde, e depois escrever funções

int ticket;
double pricefix;
// if an object was clicked
   if(id==CHARTEVENT_OBJECT_CLICK)
     {
      // if buy button was pressed
      if(sparam=="BuyButton")
        {
         //price fixing
         pricefix = Ask; 
        
        }
     }  
    if(Ask < pricefix - 4*_Point)
    { 
   ticket = OrderSend(_Symbol,OP_BUY,0.01,Ask,3,0,Ask+300*_Point,NULL,0,0,Green);  
    }  
}

Tentei fixar o preço pressionando o botão através de uma variável, esperando que quando o preço atingir esta variável, a ordem seja aberta, mas nenhum milagre aconteceu. Ajuda.

Embora a função seja teoricamente correta, se eu colocar

if(Ask == pricefix)
então o pedido abre imediatamente, mas preciso que seja 4 pontos mais baixo depois de lembrar
 
Порт-моне тв #:

Eu estava meio que tentando fazer uma fixação de preço através de uma variável, esperando que quando o preço fosse igual a essa variável, uma ordem fosse aberta, mas nenhum milagre aconteceu. Ajuda.

Embora a função esteja correta em teoria, se eu definir

O pedido abre imediatamente, mas preciso que seja 4 pips mais baixo depois de lembrar




//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- 
   ObjectCreate(0,"Button_1",OBJ_BUTTON,0,0,0);
   ObjectSetInteger(0,"Button_1",OBJPROP_XDISTANCE,20);
   ObjectSetInteger(0,"Button_1",OBJPROP_YDISTANCE,20);
   ObjectSetInteger(0,"Button_1",OBJPROP_XSIZE,100);
   ObjectSetInteger(0,"Button_1",OBJPROP_YSIZE,20);
   ObjectCreate(0,"Label_1",OBJ_LABEL,0,0,0);
   ObjectSetInteger(0,"Label_1",OBJPROP_XDISTANCE,20);
   ObjectSetInteger(0,"Label_1",OBJPROP_YDISTANCE,40);
   ObjectSetInteger(0,"Label_1",OBJPROP_CORNER,CORNER_LEFT_UPPER);
   ObjectSetString(0,"Label_1",OBJPROP_TEXT,"Price");
   ObjectSetInteger(0,"Label_1",OBJPROP_COLOR,clrBlack);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---
   if(sparam=="Button_1")
     {
      ObjectSetString(0,"Label_1",OBJPROP_TEXT,DoubleToString(Ask-4*_Point,Digits));
     }
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   int ticket;
   double price=StringToDouble(ObjectGetString(0,"Label_1",OBJPROP_TEXT));
   if(Ask<=price) ticket = OrderSend(_Symbol,OP_BUY,0.01,Ask,3,0,Ask+300*_Point,NULL,0,0,clrGreen);  
  }
 

Hi!

Eu tenho uma pergunta.

Há alguma maneira de lembrar o máximo de drawdown?

Ou seja, o drawdown de hoje é de 16% e há 20 dias era de 5%, portanto o drawdown máximo é de 16% e se amanhã é de 24% então o drawdown máximo é de 24%.

Ou é difícil de lembrar.

 
Alexander Avksentyev #:

Hi!

Eu tenho uma pergunta.

Há alguma maneira de lembrar o máximo de drawdown?

Ou seja, o drawdown de hoje é de 16% e há 20 dias era de 5%, portanto o drawdown máximo é de 16% e se amanhã é de 24% então o drawdown máximo é de 24%.

Ou é complicado.

CodeBase tem indicadores que mostram o Saldo, Histórico de Equilíbrio do histórico comercial. Existe mais de uma ferramenta desse tipo.

Pegue os dados e calcule-os como um indicador normal

 
Maxim Kuznetsov #:

CodeBase tem indicadores que exibem Balance, Equty history do histórico comercial. E há mais de uma, essas ferramentas.

Pegue os dados e calcule-os como para um indicador padrão

Bem, é claro que você pode emitir para um indicador e fazer comparações.

Obrigado!!!

 
Tretyakov Rostyslav #:



experimentou, ele começa a abrir pedidos sem parar

Razão: