Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 354

 
Arsen_Syharev:
Por favor, informe que comando escrever para abrir Sell1 e Sell2 fractals ao mesmo tempo
Não há nada no fórum.
 
Olá amigos, poderiam sugerir uma função simples, que, se alguma condição se tornar realidade... (SigPF===1 ou SigPF===2) e OrdensTotal>0 i.e. apenas as ordens que se encontram actualmente no mercado devem ser processadas se uma das condições SigPF ocorrer.

Esta é a variável externa que verifica a condição dentro da função
externamente int PF_price_in_pips=70;
A função deveria:
1.definir com que tipo de encomendas estamos a lidar... se SigPF===1, então é uma ordem de compra, se SigPF===2, então é uma ordem de venda
2. Verificar o preço actual e se
há uma ordem de compra e SigPF===1 está presente no mercado, então

a diferença entre o preço actual a que a ordem de compra deve ser aberta e qualquer um dos preços abertos das ordens já no mercado é superior ao PF_price_in_pips, a função deve retornar valid_signal=true


existem agora ordens de venda no mercado, e a SigPF===2 foi definida, então

a diferença entre qualquer preço de ordem aberta já presente no mercado e o preço actual, ao qual a ordem de venda será aberta, é superior ao PF_price_in_pips, então a função deve devolver a bandeira valid_signal=true

se a distância entre o preço de abertura da nova encomenda na ocorrência de sinais de compra/venda for inferior ao PF_price_in_pips, a função deve retornar valid_signal=false

Basicamente, em resumo, a função deve verificar a distância entre o preço aberto da nova encomenda nos sinais de compra e venda (SigPF===1, SigPF===2) e qualquer um dos preços abertos da encomenda que já se encontram no mercado... e se essa distância for maior que PF_price_in_pips então o sinal_válido=verdadeiro deve ser devolvido. Isto é para evitar abrir encomendas a preços muito próximos uns dos outros! E outra coisa... a minha EA só negoceia na abertura de um novo bar... não em todas as carraças... mas não creio que seja importante... Tenho de considerar os preços Bid or Ask de qualquer forma ...

ajuda com esta função... ! Se algo não estiver claro, vou tentar explicar ... ou dar fotografias! Apenas me ajude) Obrigado!
 

Não estou certo de ter acertado nos termos, mas...

   int PF_price_in_pips=70;
   int OrdTotal=OrdersTotal();
   bool valid_signal=false;
   int SigFF;
   
   if(OrdersTotal()>0)
   {
   for(int i=OrdTotal-1; i>=0; i --)
     {
      if(!OrderSelect(i,SELECT_BY_POS))
         continue;

      if(OrderType()==OP_BUY && SigFF==1 && Ask+OrderOpenPrice()>PF_price_in_pips)
         valid_signal=true;
         else
         valid_signal=false;
      if(OrderType()==OP_SELL && SigFF==2 && OrderOpenPrice()-Bid>PF_price_in_pips)
         valid_signal=true;
         else
         valid_signal=false;

     }
     }
 
Arsen_Syharev:
Pode dizer-me que comando escrever para que quando os fractais Sell1 e Sell2 abrem ao mesmo tempo uma ordem
Que valor de Sell1 e Sell2 lhe conviria para abrir uma encomenda. //I não posso mais assistir à sua angústia....
 
Arsen_Syharev:
Pode dizer-me que comando devo escrever para que quando Vender1 e Vender2 fractais são abertos ao mesmo tempo uma ordem seja aberta
if (Sell1 !=0 && Sell2 != 0){

/* Если по текущей цене */ 

OrderSend(Symbol1, OP_SELL, Lots, Bid, 1, 0, 0, 0, Magik, 0, Red);

OrderSend(Symbol2, OP_SELL, Lots, Bid, 1, 0,0, 0, Magik, 0, Red); 

/*Если по пробитию фракталов отложенными ордерами */

 OrderSend(Symbol1, OP_SELLSTOP, Lots, Sell1, 1, 0, 0, 0, Magik, 0, Red);

OrderSend(Symbol2, OP_SELLSTOP, Lots, Sell2, 1, 0,0, 0, Magik, 0, Red);  

} 

Mas este deve ser um exemplo MUITO MUITO grosseiro

 
Sabe se é possível assinar mais do que um sinal numa conta?
 

Olá Colegas, juntaram-se recentemente às vossas fileiras :). Estou farto de ordens pendentes e decidi utilizar um guião que descarreguei da Internet, mas não foi satisfatório: tive erros apenas numa direcção, e o outro guião apenas colocou uma ordem em cada direcção. Consiste essencialmente na abertura de uma certa quantidade de ordens pendentes em ambas as direcções. Pergunta: Como posso definir uma parada de rastreio em cada encomenda? Isto é um guião, não um Expert Advisor. As ordens foram abertas, a paragem de percurso foi-lhes anexada, e é tudo, o guião fez o seu trabalho. Como posso utilizar o guião para desencadear uma paragem regular que é executada por um clique com o botão direito do rato numa ordem? 4º MetaTrader Build 765.

 
entitie:

Olá Colegas, juntaram-se recentemente às vossas fileiras :). Estou farto de ordens pendentes e decidi utilizar um guião que descarreguei da Internet, mas não foi satisfatório: tive erros apenas numa direcção, e o outro guião apenas colocou uma ordem em cada direcção. Consiste essencialmente na abertura de uma certa quantidade de ordens pendentes em ambas as direcções. Pergunta: Como posso definir uma parada de rastreio em cada encomenda? Isto é um guião, não um Expert Advisor. As ordens foram abertas, a paragem de percurso foi-lhes anexada, e é tudo, o guião fez o seu trabalho. Como posso utilizar o guião para desencadear uma paragem regular que é executada por um clique com o botão direito do rato numa ordem? 4º MetaTrader Build 765.

O freelance faz tudo).
 

Olá a todos!

A tarefa é a seguinte - preciso de abrir encomendas após uma certa distância Passo no EURUSD.m para comprar e no EURUSD.m1 para vender. Este problema é resolvido no código abaixo.

No entanto, se o preço foi contra nós, devemos também abrir ordens de compra por EURUSD.m, desde que o preço tenha passado da última ordem para vender a EURUSD.m1 a uma distância de Passo*2. Esta condição funcionará na condição de que este preço de abertura seja inferior ao preço da última ordem de compra por EURUSD.m.

Não consigo perceber como o fazer. Terei todo o prazer em ajudar.

// бай евро доллар
if (rates[1].open < rates[1].close && !PositionSelect(Symbol1)) 
   {
      LastPriceBuy = OpenBuy(Symbol1,Lot); // если бычья свеча и нет открытой позиции по этому символу
   }
if (GlobalVariableCheck ("bb_1")) GlobalVariableGet("bb_1", bb_1);  // цифровая переменная внутренняя и ее проверка

if (PositionSelect(Symbol1) && LastPriceBuy > 0) //открытие второго и последующих ордеров
  {
   if(LastPriceBuy+Step*_Point < SymbolInfoDouble(Symbol1,SYMBOL_ASK)) 
   {LastPriceBuy = OpenBuy(Symbol1,Lot);} // открытие позиции в бай по евро доллару всех последующих ордеров 
  }    

// сел евро доллар
if (rates[1].open > rates[1].close && !PositionSelect(Symbol3)) {LastPriceSell = OpenSell(Symbol3,Lot);} // если бычья свеча и нет открытой позиции по этому символу
if (GlobalVariableCheck ("ss_1")) GlobalVariableGet("ss1_", ss_1);  // цифровая переменная внутренняя и ее проверка

if (PositionSelect(Symbol3) && LastPriceSell > 0) //открытие второго и последующих ордеров
  {
   if(LastPriceSell-Step*_Point > SymbolInfoDouble(Symbol3,SYMBOL_BID))
   {LastPriceSell = OpenSell(Symbol3,Lot);} // открытие позиции в селл по евро доллару всех последующих ордеров 
  } 
 
zfs:
Os freelancers fazem tudo isto).

Um comentário-resposta muito valioso e informativo, sugiro que o use também...

De facto - não há um simples comando que, depois de abrir uma ordem, pendure em cima dela uma parada padrão de arrasto?