Como criar uma matriz de números mágicos? - página 3

 
Eu gostaria de um número separado para ordens de compra e venda é possível?
 
7bit:
idéia: você poderia usar sempre o mesmo número mágico de sempre para torná-lo compatível com tudo o mais que usa números mágicos, mas também combiná-lo com a seqüência de comentários, incluindo um número no comentário que é único para cada par de negócios. Você poderia então encontrar a outra profissão de cada par de profissões, simplesmente procurando uma profissão com a mesma magia e comentário.

Como posso encontrar um pedido por comentário e número mágico?

Eu tenho 15 gatilhos

eu não quero uma norma, digamos TP 200 SL 300

cada par de moedas terá um TP e SL diferentes Dependendo das estatísticas do gatilho

se um gatilho de maior probabilidade vier, quero identificá-lo e agir

trigger1 eur/usd 100 prob: 94%, usd/jpy 300 prob:74% eur/jpy 200 prob.100%

se o gatilho 1 for trocado por um dos pares eur/usd não será mais trocado por esse par para esse gatilho

ainda quero trocar por trigger2 trigger3 e (trigger1 apenas par diferente)

 

y não

int MagicNoBuy  = 12345;
int MagicNoSell = 67890;

OrderSend(Symbol(),OP_BUY,1,Ask,......,MagicNoBuy ,.,..);
OrderSend(Symbol(),OP_SELL,1,Bid,......,MagicNoSell,.,..);
 
você não precisa de magia separada para comprar e vender, você pode filtrá-los facilmente com OrderType()
 
7bit:
você não precisa de magia separada para comprar e vender, você pode filtrá-los facilmente com OrderType()


obrigado por sua ajuda

 
7bit:
você não precisa de magia separada para comprar e vender, você pode filtrá-los facilmente com OrderType()
e você pode filtrar os pares de moedas com OrderSymbol()
for(int pos = OrdersTotal()-1; pos >= 0 ; pos--) if (
    OrderSelect(pos, SELECT_BY_POS)             // Only my orders w/
&&  OrderMagicNumber() == Magic.Number          // my magic number
&&  OrderSymbol()      == Symbol() ){           // and period and symbol
 

Eu uso uma RANGE de números mágicos, portanto posso usar diferentes métodos de SL para o comércio.

por exemplo, MAGIC_NUMBER_BASE = 1234500

e depois usar 'offset' de 0-99 para agrupar meus negócios por tipo SL. Eu então uso código como

      if(OrderMagicNumber() < MY_MAGIC_LO || OrderMagicNumber() > MY_MAGIC_HI)

para encontrar minhas profissões (na verdade esse código é para EXCLUIR minhas profissões!)

 
sxTed:

Jon esta função emite números únicos

//+------------------------------------------------------------------+
//| Function..: SequenceNumber                                       |
//| Purpose...: Generate a sequential number.                        |
//| Returns...: dSeqNum - next sequence number.                      |
//| Notes.....: MT4 keeps the value of the global variable at the    |
//|             client terminal for 4 weeks since the last access.   |                        
//|             Use SequenceNumber() to generate a unique identity   |
//|             for each order (and passed via parameter <magic>     |
//|             number, or converted to a string and passed via the  |
//|             parameter <comment> to the OrderSend() function) as  |
//|             the trade servers of some brokers do modify the      |
//|             ticket number of a pending order when it changes to  |
//|             a market order.                                      |
//|             The same sequence number could, for example, be used |
//|             to identify the two positions of a straddle order.   |
//|             ******************************************************
//|             * If the expert has to close partial lots, then MT4  *
//|             * retains in the new order the contents of the       *
//|             * OrderMagicNumber() but loses OrderComment().       *
//|             ******************************************************
//| Sample....: string sNumber=DoubleToStr(SequenceNumber(),0);      |
//|             if(OrderSend("EURUSD",OP_BUY,1,Ask,3,Ask-25*Point,   |
//|                          Ask+25*Point,sNumber,16384,0,Green) > 0)|
//|                OrderSend("EURUSD",OP_BUY,1,Ask,3,Ask-25*Point,   |
//|                          Ask+65*Point,sNumber,16384,0,Green);    |
//+------------------------------------------------------------------+
double SequenceNumber() {
  double dSeqNum=1, d;
  string sName="SequenceNumber";

  while(GlobalVariableCheck("Semaphore")) d+=0;
  GlobalVariableSet("Semaphore",1);
  if(GlobalVariableCheck(sName)) dSeqNum=GlobalVariableGet(sName)+1;
  GlobalVariableSet(sName,dSeqNum);
  GlobalVariableDel("Semaphore");
  return(dSeqNum);
}

Obrigado, finalmente posso revisitar este tópico e estou experimentando isto. Eu não entendo a amostra. Por que OrderSend > 0, então execute outro OrderSend? Por favor, ajude-me!

Percebi que o Número Sequencial irá aumentar a cada pedido e que eu poderia atribuí-lo para comentar ou número mágico, o que é ótimo. A melhor parte é que eles permanecem no sistema mesmo depois que eu reiniciar o MT4.

Entretanto, como posso identificá-los e compará-los mais tarde?


Como cada conjunto de pedidos é colocado:

string sNumber=DoubleToStr(SequenceNumber(),0);
int ticket=OrderSend(Symbol(),OP_BUY,LotSize,MarketInfo(Symbol 1,MODE_ASK),3,0,0,sNumber,12345,0,Green)
&   ticket=OrderSend(Symbol(),OP_SELL,LotSize,MarketInfo(Symbol 2,MODE_ASK),3,0,0,sNumber,12345,0,Red);


ou seja, eu negocio em pares, pedidos 1 & 2, depois pedidos 3 & 4, e assim por diante....

Pedido 1 - Sequência #1

Ordem 2 - Sequência #2

Ordem 3 - Sequência #3

Ordem 4 - Sequência #4

Ordem 5 - Sequência #5

Ordem 6 - Sequência #6


Agora que eles têm um número sequencial único que incrementa,

Como selecioná-los e compará-los?

Eu gostaria de selecionar e comparar

Pedidos 1 & 2, depois Pedidos 3 & 4, depois Pedidos 5 & 6, e assim por diante ...


Obrigado de antemão!

 

... Continuação da resposta acima


Ou talvez eu pudesse controlar quando o número de sequência aumentaria?

ou seja, após cada conjunto de ordens? Como depois de 2 ordens.

Então, ao selecionar e comparar, eu poderia apenas selecionar ordens com o mesmo número seqüencial.

Como codificar isso?


Obrigado!

 
Por que não usar o número único de bilhete que você recebe quando você usa Orderend()?

Salve Theese in an Array[][]


exemplo.


Comércio 1
TicketArray [1] [0] = Ticket0;
TicketArray [1] [1] = Ticket1;

Comércio 2
TicketArray [2] [0]
TicketArray [2] [1] [2] [3]

Comércio 3
TicketArray [3] [0]
TicketArray [3] [1]

... ... E assim por diante