Eu criei a função ErrorRU(), que retorna uma breve ou detalhada descrição russa de um erro por seu código. Ambos os erros retornados pelo servidor comercial e erros de execução dos programas MQL são detectados. Nem todos os erros, entretanto, têm uma descrição detalhada com recomendações "O que fazer", mas é assim que as coisas são.
Estou publicando a função no roteiro para testá-la.
Se alguém precisar de uma variação na forma de arquivo MQH, você pode obtê-la em meu website.
Saudações Igor. Obrigado por esta característica, é muito útil
Esta função é uma das minhas pequenas funções preditivas. Preditivos no sentido de que mostram o futuro, ou seja, respondem à pergunta: "O que acontecerá se algum evento acontecer? Esta função, por exemplo, retorna um lucro na moeda do depósito se as posições atuais forem fechadas ao preço passado como parâmetro.
op- Operação comercial, tipo de posição. Valores válidos: OP_BUY,OP_SELL ou-1. O valor padrão-1 significa qualquer operação comercial.
mn- Identificador de posição, MagicNumber. O valor padrão-1 significa qualquer identificador.
cp- Preço de fechamento previsto. Valor padrão0 significa o preço atual da Licitação.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 29.04.2013 |//| Описание : Возвращает профит в валюте депозита, если текущие позиции |//| будут закрыты по цене, переданной в качестве параметра. |//+----------------------------------------------------------------------------+//| Параметры: |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//| cp - цена предполагаемого закрытия (Bid) ( 0 - текущая цена) |//+----------------------------------------------------------------------------+double ProfitByPrice(int op=-1, int mn=-1, double cp=0) {
double pr=0;
double po=MarketInfo(Symbol(), MODE_POINT);
double sp=MarketInfo(Symbol(), MODE_SPREAD);
double tv=MarketInfo(Symbol(), MODE_TICKVALUE);
int i, k=OrdersTotal();
RefreshRates();
if (cp<=0) cp=Bid;
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==Symbol() && (op<0 || OrderType()==op)) {
if (mn<0 || OrderMagicNumber()==mn) {
if (OrderType()==OP_BUY) {
pr+=(cp-OrderOpenPrice())/po*OrderLots()*tv;
pr+=OrderCommission()+OrderSwap();
}
if (OrderType()==OP_SELL) {
pr+=(OrderOpenPrice()-cp-Ask+Bid)/po*OrderLots()*tv;
pr+=OrderCommission()+OrderSwap();
}
}
}
}
}
return(pr);
}
ZZY. Em anexo está um roteiro tradicional para testar a função.
ZZZY. Não há um sistema tradicional entre os parâmetros, pois o preço passado no outro parâmetro deve estar ligado a um instrumento comercial. Decidi não me preocupar muito com ele e ligá-lo ao símbolo atual.
Prezado Igor, obrigado por suas funções que facilitam nossos primeiros passos na programação! Você poderia me ajudar, eu preciso de uma função para fechar uma posição, mas sem me referir a outras funções, mas para ter Selecione, 3 tentativas e manipulação de erros! E no início eu prescreveria condições com funções de verificação sem Select de modo a não retardar o processo. Até agora tenho usadoum loop Selekt no iníciocom várias verificações, chamando a função de fechamento sem Selekt, que abranda quase duas vezes! O que você pode me aconselhar? Obrigado!
Precisamos estabelecer uma ordem pendente a um preço de liquidação, desde que não haja outras ordens ou posições dentro da distância desse preço. Você não parece ter essa função: a existência de uma ordem ou posição a uma distância de um determinado preço?
Precisamos estabelecer uma ordem pendente a um preço de liquidação, desde que não haja outras ordens ou posições dentro da distância desse preço. Você não parece ter tal característica: a existência de uma ordem ou posição a uma distância de um determinado preço?
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 24.06.2013 |//| Описание : Возвращает флаг существования ордера или позиции |//| около заданной цены. |//+----------------------------------------------------------------------------+//| Параметры: |//| zp - заданная цена |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| op - торговая операция ( -1 - любая операция) |//| mn - MagicNumber ( -1 - любой магик) |//| ds - расстояние в пунктах от цены ( 1000000 - по умолчанию) |//+----------------------------------------------------------------------------+bool ExistOPNearPrice(double zp, string sy="", int op=-1, int mn=-1, int ds=1000000) {
int i, k=OrdersTotal(), ot;
if (sy=="" || sy=="0") sy=Symbol();
double p=MarketInfo(sy, MODE_POINT);
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
ot=OrderType();
if ((OrderSymbol()==sy) && (op<0 || ot==op)) {
if (mn<0 || OrderMagicNumber()==mn) {
if (MathAbs(OrderOpenPrice()-zp)<ds*p) return(True);
}
}
}
}
return(False);
}
Em anexo um roteiro para testar a função ExistOPNearPrice()
borilunad: Prezado Igor, obrigado por suas funções que facilitam nossos primeiros passos na programação! Você poderia me ajudar, eu preciso de uma função para fechar uma posição, mas sem referência a outras funções, mas para ter Seleção, 3 tentativas e manipulação de erros! E no início eu prescreveria condições com funções de verificação sem Select de modo a não retardar o processo. Até agora estou usandoum loop Selekt no iníciocom várias verificações, chamando a função de fechamento sem Selekt, que abranda quase duas vezes mais! O que você pode me aconselhar? Obrigado!
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.
...adicione notificações PUSH ao SEUe-SignalOfTrade EA?
Eu criei a função ErrorRU(), que retorna uma breve ou detalhada descrição russa de um erro por seu código. Ambos os erros retornados pelo servidor comercial e erros de execução dos programas MQL são detectados. Nem todos os erros, entretanto, têm uma descrição detalhada com recomendações "O que fazer", mas é assim que as coisas são.
Estou publicando a função no roteiro para testá-la.
Se alguém precisar de uma variação na forma de arquivo MQH, você pode obtê-la em meu website.
Saudações Igor. Obrigado por esta característica, é muito útil
Olá KimIV.
Você tem uma função maravilhosa i-Profit.mq4 em seu site.
Você poderia me dizer como extrair dados de equilíbrio dele?
// 0 - saldo atual
// 1 - equilíbrio no início do dia.
// 2 - equilíbrio no início da semana.
// 3 - balanço patrimonial no início do mês
// 4 - equilíbrio no início do trimestre
// 5 - equilíbrio no início do ano
// 6 - balanço a partir da data do usuário
A função ProfitByPrice().
Esta função é uma das minhas pequenas funções preditivas. Preditivos no sentido de que mostram o futuro, ou seja, respondem à pergunta: "O que acontecerá se algum evento acontecer? Esta função, por exemplo, retorna um lucro na moeda do depósito se as posições atuais forem fechadas ao preço passado como parâmetro.
ZZY. Em anexo está um roteiro tradicional para testar a função.
ZZZY. Não há um sistema tradicional entre os parâmetros, pois o preço passado no outro parâmetro deve estar ligado a um instrumento comercial. Decidi não me preocupar muito com ele e ligá-lo ao símbolo atual.
KimIV:
Precisamos estabelecer uma ordem pendente a um preço de liquidação, desde que não haja outras ordens ou posições dentro da distância desse preço. Você não parece ter essa função: a existência de uma ordem ou posição a uma distância de um determinado preço?
KimIV:
Precisamos estabelecer uma ordem pendente a um preço de liquidação, desde que não haja outras ordens ou posições dentro da distância desse preço. Você não parece ter tal característica: a existência de uma ordem ou posição a uma distância de um determinado preço?
Você pode desenhar algo semelhante a este...
atualização...
Em anexo um roteiro para testar a função ExistOPNearPrice()
Prezado Igor, obrigado por suas funções que facilitam nossos primeiros passos na programação! Você poderia me ajudar, eu preciso de uma função para fechar uma posição, mas sem referência a outras funções, mas para ter Seleção, 3 tentativas e manipulação de erros! E no início eu prescreveria condições com funções de verificação sem Select de modo a não retardar o processo. Até agora estou usandoum loop Selekt no iníciocom várias verificações, chamando a função de fechamento sem Selekt, que abranda quase duas vezes mais! O que você pode me aconselhar? Obrigado!
FecharPosBySelect() não é algo?