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

 
Ihor Herasko:

Escreva seus próprios carrapatos e coloque-os no testador de estratégia.

mas algo mais fácil de usar?

 
Andrey Sokolov:

mas algo mais fácil de usar?

você não pode escrever que não o fará você mesmo? entãohttps://www.mql5.com/ru/job

aqui está o artigohttps://www.mql5.com/ru/articles/4566

você o leu, faça cotações de acordo com suas próprias leis de distribuição

se a MT4 precisa de seus próprios gráficos e carrapatos, então leia o artigo, exporte citações da MT5 e importe-as para a MT4

não pode ser mais simples

Se você pode programar para o MT4, abrir o script PeriodConverter do MT4 no MetaEditor, o código lá é claro e bastante compacto em volume, não vai demorar muito tempo para descobri-lo, então crie seu próprio gráfico e teste-o

ZS: Lembro-me de ter postado no fórum um roteiro para criar gráficos com a função Wehrstrass.

https://www.mql5.com/ru/forum/86386/page988#comment_7843056

 

Olá. A função Retorna uma bandeira para a existência de uma posição ou ordem perto do mercado (função encontrada no fórum). Para o código de teste, ele deve abrir uma posição se cerca de 200 pips acima e abaixo do preço atual, não houver posições. Por que ele abre uma posição em cada tick quase ao mesmo preço?

//+------------------------------------------------------------------+
//|                                                    testprpos.mq4 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//--- input parameters
input int      Input1;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

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

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(!ExistOPNearMarket(Symbol(),-1,200))
     {
      int ticket=OrderSend(Symbol(),OP_BUY,1,Ask,300,0,0,"_",16384,0,clrGreen);
      if(ticket<0)
        {
         Print("OrderSend завершилась с ошибкой #",GetLastError());
        }
      else
         Print("Функция OrderSend успешно выполнена");
      //--- 

     }

  }
//+------------------------------------------------------------------+
bool ExistOPNearMarket(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);
   if(p==0) if(StringFind(sy,"JPY")<0) p=0.0001; else p=0.01;
   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(ot==OP_BUY || ot==OP_BUYLIMIT || ot==OP_BUYSTOP) 
                 {
                  if(MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())<ds*p) return(True);
                 }
               if(ot==OP_SELL || ot==OP_SELLLIMIT || ot==OP_SELLSTOP) 
                 {
                  if(MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))<ds*p) return(True);
                 }
              }
           }
        }
     }
   return(False);
  }
//+------------------------------------------------------------------+
 
Eu tenho um problema com a migração de EAs, os botões ficaram inativos, eu não posso migrar, alguém já experimentou isso?
 
Aleksei Petrenko:
Eu tenho um problema com a migração de EAs, os botões ficaram inativos, eu não posso migrar, alguém já experimentou isso?
 
Aleksei Petrenko:


 
Ghabo:

Olá. Função Retorna uma bandeira para a existência de uma posição ou ordem perto do mercado (função encontrada no fórum). Para o código de teste, deve abrir uma posição se cerca de 200 pips acima e abaixo do preço atual, sem posições. Por que ele abre uma posição em cada tick quase ao mesmo preço?

Verifique o número de parâmetros ao ligar

ExistOPNearMarket(Symbol(),-1,200)

e sua descrição

 
Galim_V:

Verifique o número de parâmetros ao ligar

e sua descrição

Obrigado.
 
Tenho um bot binário em python, pergunta: como posso enviar um sinal do robô do terminal sem muletas?
 

Você pode me dizer como calcular as garantias para uma transação?


Tentei duas abordagens

(0.1 * Ask*MarketInfo(Symbol(),MODE_LOTSIZE))/AccountInfoInteger(ACCOUNT_LEVERAGE)


E este aqui

FreeMarginCheck=AccountFreeMarginCheck(Symbol(),OP_BUY,0.1);

 double val=AccountFreeMargin()-FreeMarginCheck;



O primeiro dá resultados estranhos no EURJPY se minha moeda de depósito for USD. Preciso acrescentar algo à fórmula?

O segundo funciona também ocasionalmente, às vezes com valores corretos, às vezes com alguns disparates (depende do depósito)