Aqui está parte do código do script para Metatrader5:
#property copyright"Copyright 2019, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//---- показывать входные параметры#property script_show_inputs//---#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>
CTrade m_trade; // trading object
CSymbolInfo m_symbol; // symbol info object//+------------------------------------------------------------------+//| Enum Stop or Limit |//+------------------------------------------------------------------+enum ENUM_STOP_OR_LIMIT
{
stop=0, // Buy stop and Sell stop
limit=1// Buy limit and Sell limit
};
//--- input parametersinputushort InpUpGap = 15; // Gap for pending orders UP from the current price (in points)inputushort InpUpStep = 30; // Step between orders UP (in points)inputushort InpDownGap = 15; // Gap for pending orders DOWN from the current price (in points)inputushort InpDownStep = 30; // Step between orders DOWN (in points)input ENUM_STOP_OR_LIMIT InpPending = stop; // Type of pending ordersinputuchar InpUpQuantity = 1; // UP quantity ordersinputuchar InpDownQuantity = 1; // DOWN quantity ordersinputdouble InpLots = 0.01; // Lotsinputushort InpStopLoss = 50; // Stop Loss (in points)inputushort InpTakeProfit = 50; // Take Profit (in points)//---ulong m_slippage=30; // slippagedouble ExtUpGap=0.0;
double ExtUpStep=0.0;
double ExtDownGap=0.0;
double ExtDownStep=0.0;
double ExtStopLoss=0.0;
double ExtTakeProfit=0.0;
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//---if(InpLots<=0.0)
{
Print("The \"Lots\" can't be smaller or equal to zero");
return;
}
//---if(!m_symbol.Name(Symbol())) // sets symbol namereturn;
if(!RefreshRates())
return;
string err_text="";
if(!CheckVolumeValue(InpLots,err_text))
{
Print(err_text);
return;
}
//---if(IsFillingTypeAllowed(SYMBOL_FILLING_FOK))
m_trade.SetTypeFilling(ORDER_FILLING_FOK);
elseif(IsFillingTypeAllowed(SYMBOL_FILLING_IOC))
m_trade.SetTypeFilling(ORDER_FILLING_IOC);
else
m_trade.SetTypeFilling(ORDER_FILLING_RETURN);
//---
m_trade.SetDeviationInPoints(m_slippage);
m_trade.SetAsyncMode(true);
//---
ExtUpGap = m_symbol.Point() * InpUpGap;
ExtUpStep = m_symbol.Point() * InpUpStep;
ExtDownGap = m_symbol.Point() * InpDownGap;
ExtDownStep = m_symbol.Point() * InpDownStep;
ExtStopLoss = m_symbol.Point() * InpStopLoss;
ExtTakeProfit = m_symbol.Point() * InpTakeProfit;
//--- start workdouble start_price_ask=m_symbol.Ask()-ExtUpGap;
double start_price_bid=m_symbol.Bid()+ExtDownGap;
//--- set pending ordersfor(int i=0; i<InpUpQuantity; i++)
{
double price_ask = start_price_ask+i*ExtUpStep;
double price_bid = start_price_bid+i*ExtUpStep;
if(InpPending==stop)
{
double sl = (ExtStopLoss==0.0) ? 0.0 : price_ask - ExtStopLoss;
double tp = (ExtTakeProfit==0.0) ? 0.0 : price_ask + ExtTakeProfit;
m_trade.BuyStop(InpLots,m_symbol.NormalizePrice(price_ask),m_symbol.Name(),
m_symbol.NormalizePrice(sl),
m_symbol.NormalizePrice(tp));
}
else
{
double sl = (ExtStopLoss==0.0) ? 0.0 : price_bid + ExtStopLoss;
double tp = (ExtTakeProfit==0.0) ? 0.0 : price_bid - ExtTakeProfit;
m_trade.SellLimit(InpLots,m_symbol.NormalizePrice(price_bid),m_symbol.Name(),
m_symbol.NormalizePrice(sl),
m_symbol.NormalizePrice(tp));
}
}
for(int i=0; i<InpDownQuantity; i++)
{
double price_ask = start_price_ask-i*ExtDownStep;
double price_bid = start_price_bid-i*ExtDownStep;
if(InpPending==limit)
{
double sl = (ExtStopLoss==0.0) ? 0.0 : price_ask - ExtStopLoss;
double tp = (ExtTakeProfit==0.0) ? 0.0 : price_ask + ExtTakeProfit;
m_trade.BuyLimit(m_symbol.LotsMin(),m_symbol.NormalizePrice(price_ask),m_symbol.Name(),
m_symbol.NormalizePrice(sl),
m_symbol.NormalizePrice(tp));
}
else
{
double sl = (ExtStopLoss==0.0) ? 0.0 : price_bid + ExtStopLoss;
double tp = (ExtTakeProfit==0.0) ? 0.0 : price_bid - ExtTakeProfit;
m_trade.SellStop(m_symbol.LotsMin(),m_symbol.NormalizePrice(price_bid),m_symbol.Name(),
m_symbol.NormalizePrice(sl),
m_symbol.NormalizePrice(tp));
}
}
}
O roteiro deve definir ordens de limite pendentes a uma certa distância do pedido e da licitação, ou ordens de parada. Os limites das ordenspendentes são estabelecidos sem nenhum problema, mas os de parada não são. Por favor, não saiba por que a Stop de Venda e Stop de Compra não são definidas ordens pendentes.
primeiro você tem que encontrar todos os textos e usar esta função para calcular a partir deles?
Não conheço isto completamente, pois eu mesmo estou aprendendo a língua mql4 recentemente. Você pode encontrar tudo na ajuda. Você precisa do texto completo do objeto ou de um pedaço?
Yevhenii Levchenko: Não conheço isto completamente, pois eu mesmo sou um aprendiz recente de línguas mql4. A ajuda está toda lá. Você precisa do texto completo do objeto ou de um pedaço dele?
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Bom dia a todos!
Aqui está parte do código do script para Metatrader5:
O roteiro deve definir ordens de limite pendentes a uma certa distância do pedido e da licitação, ou ordens de parada. Os limites das ordenspendentes são estabelecidos sem nenhum problema, mas os de parada não são. Por favor, não saiba por que a Stop de Venda e Stop de Compra não são definidas ordens pendentes.
Atenciosamente, Vladimir.
Oi, pessoal. Fez escrever muito ao lado de um pedido aberto. Você pode me dizer como pegar o último texto e esta lista?
primeiro você tem que encontrar todos os textos e usar esta função para calcular a partir deles?
primeiro você tem que encontrar todos os textos e usar esta função para calcular a partir deles?
Não conheço isto completamente, pois eu mesmo sou um aprendiz recente de línguas mql4. A ajuda está toda lá. Você precisa do texto completo do objeto ou de um pedaço dele?
Eu preciso do que foi escrito da última vez
Oi, pessoal. Fez escrever muito ao lado de um pedido aberto. Você pode me dizer como pegar o último texto e esta lista?
De qual lista?
E, por favor, use o modelador no editor (Ctrl+<):
O que deve ser retirado de onde?
De qual lista?
E, por favor, use o modelador no editor (Ctrl+<):
Onde posso obtê-lo?
Esta função escreve um número em cada pedido ou, mais precisamente, lote*100.
Agora precisamos de uma função inversa que mostre qual foi o último número