Perguntas de Iniciantes MQL4 MT4 MetaTrader 4 - página 222

 

Você pode verificar o robô comercial

//+------------------------------------------------------------------+

//| Peritos1.mq4 |

//| Copyright 2017, MetaQuotes Software Corp. |

//| https://www.mql5.com |

//+------------------------------------------------------------------+

#direitos autorais "Copyright 2017, MetaQuotes Software Corp."

#link da propriedade "https://www.mql5.com"

#propriedade versão "1.00"

#propriedade rigorosa

//+------------------------------------------------------------------+

//| https://www.mql5.com |

//+------------------------------------------------------------------+

#property copyright "Copyright 2020, MetaQuotes Software Corp.

#link da propriedade "https://www.mql5.com"


entrada duplo Lotes=0,01;

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

int OnInit()

( OrderSend(Symbol(),OP_BUY,Lots,3,0,Ask+0.0084,Ask-0.0084)


lote duplo=Lotes;

se lucro então Lotes=lote+0.01 mais Lotes=lote-0.01

se Lotes=0 então Lotes=0,01

se Lotes>0.03 então Lotes=0.01

//---

//---

retorno();

}


Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
Открой новые возможности в MetaTrader 5 с сообществом и сервисами MQL5
  • www.mql5.com
One Click Close The script allows users to easily close positions if their profit/loss reaches or exceeds a value specified in pips. Please set slippage value first. Sometimes some positions do not close due to high volatility of the market. Please set larger slippage or restart the script. The free demo version is: ...
 
Olá, caros profissionais, me aconselham como escrever a condição quandoa ordem pendente émovida uma vez a um determinado movimento de preço, por exemplo, a ordem Sellstop foi colocada a 1,28, o preço passou para 1,50 e a ordem pendente passou para o preço a uma certa distância do preço, mas não se moveu para trás do preço constantemente, moveu-se apenas uma vez, ou seja, moveu-se, por exemplo, por dez pips e parou mesmo que o preço fosse mais longe. Cumprimentos, Alexander!
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
 

Boa tarde, caros especialistas!

Por favor, ajude, dicas de como fazê-lo, onde ler, escrevendo parte do código.

Anexei uma parte do código. Preciso poder entrar meu comentário ao abrir um pedido ou uma ordem de limite. Isto é, não no código, mas ao abrir o painel EA.

extern double Lots     = 0.1;
extern int StopLoss    = 250;
extern int TakeProfit  = 150;
extern int Magic       = 1;

double SL, TP;

int ticket;


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double price = Ask;

   if(BUY() == 0)
     {
      SL = NormalizeDouble(Ask - StopLoss*Point, 5);
      TP = NormalizeDouble(Ask + TakeProfit*Point, 5);
      ticket = OrderSend(Symbol(), OP_BUY, Lots, price, 3, SL, TP, "", Magic, 0, Red);
      if(ticket<0)
         Print("Не удалось открыть ордер");
     }
  }
//+------------------------------------------------------------------+
int BUY()
  {
   int count = 0;
   for(int i=OrdersTotal()-1; i>=X; i--)
     {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true &&
         OrderMagicNumber() == Magic &&
         OrderType() == OP_BUY)
        {
         count++;
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
 
d4vv:

Preciso poder entrar meu comentário ao abrir um pedido ou uma ordem de limite.

input string Mycomment="Preved Medved";


ticket = OrderSend(Symbol(), OP_BUY, Lots, price, 3, SL, TP, Mycomment, Magic, 0, Red);

O comentário é escrito quando o pedido é criado e não pode ser alterado novamente.

 
Aleksei Stepanenko:

O comentário é escrito quando o pedido é criado e não pode mais ser alterado.

Muito obrigado. Isto é exatamente o que eu preciso.

 
Knelson:
Por favor, informe como escrever uma condição quandouma ordem pendenteserá movida uma vez a um determinado movimento de preço,

1. Criar uma matriz para armazenar os bilhetes dos pedidos abertos e uma bandeira que a ordem já tenha sido movida.

struct Orders
   {
   int ticket;
   bool moved;
   } orders[];

2. Acompanhe as novas ordens e registre nesta matriz as informações sobre a ordem aberta com a bandeira "não se moveu".

bool finded;
int index==ArraySize(orders)-1;
for(int i=OrdersTotal()-1; i>=0; i--)
   {
   if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
   if(OrderSymbol()!=symbol) continue;
   if(OrderMagicNumber()!=magic) continue;
   if(OrderType()!=OP_BUYSTOP && OrderType()!=OP_SELLSTOP) continue;
   finded=false;
   for(int j=index; j>=0; j--)
      {
      if(orders[j].ticket==OrderTicket())
         {
         finded=true;
         break;
         }
      }
   if(!finded)
      {
      ArrayResize(orders,++index+1);
      orders[index].ticket=OrderTicket();
      orders[index].moved=false;
      }
   }

3. Eliminar informações da matriz se o pedido for fechado, eliminado ou transformado.

4. Verifique a condição para se mover, se a condição for atendida e a bandeira "não se moveu", então mova e mude a bandeira para "moveu".

 
Aleksei Stepanenko:

1. Criar uma matriz para armazenar os bilhetes dos pedidos abertos e uma bandeira que a ordem já tenha sido movida.

2. Acompanhe as novas ordens e registre nesta matriz as informações sobre a ordem aberta com a bandeira "não se moveu".

3. Eliminar informações da matriz se o pedido for fechado, eliminado ou transformado.

4. Verifique a condição para mover-se, se a condição chegou e a bandeira "não se moveu", então mova e mude a bandeira para "moveu".

Eu não acho que seja confiável.

Eu resolveria tal problema de uma maneira mais simples: colocar uma ordem pendente com o número mágico 2 e apagar uma ordem pendente com o número mágico 1 sob as condições em que a ordem deve ser movida

O código seria simples - após o recebimento do tick, o laço passaria pela ordem com o número mágico 1 se fosse encontrado e necessário para mover, então apagaríamos esta ordem e colocaríamos uma nova ordem com o número mágico 2

 

Sim, é uma boa opção.

 
Aleksei Stepanenko:

Sim, essa é uma boa opção.

UPD: o código será simples - quando o tick vem o laço no pedido com o número mágico 1 se for encontrado e precisar se mover, então apague este pedido e defina um novo pedido com o número mágico 2

.... então tentaremos definir um novo pedido com o número mágico 2 e se estiver OK, então apagaremos o pedido com o número mágico 1

portanto menos verificações a serem feitas - por exemplo, os níveis de parada se expandiram e não será possível mover o pedido uma vez e já apagamos o pedido encontrado

dessa forma ;)

 
Observando o cérebro humano (principalmente o meu, mas não só), encontro uma propriedade - a escavação de túneis. O processo de pensamento ocorre dentro de estereótipos de pensamento, como se estivesse em um túnel. E não é fácil pular fora dele com meus próprios esforços. O "eu" é inseparável de mim e parece que o trem de pensamento é correto, absolutamente correto. Mas então entra o conhecimento de fora, e você começa a perceber que foi um prisioneiro de suas idéias. Milagres...