7bit: idea: si potrebbe usare sempre lo stesso numero magico come al solito per renderlo compatibile con tutto il resto che usa i numeri magici ma anche combinarlo con la stringa di commento includendo un numero nel commento che è unico per ogni coppia di trade. Potresti quindi trovare l'altro trade di ogni coppia di trade semplicemente cercando un trade con la stessa magia e lo stesso commento.
Come posso trovare un ordine per commento e numero magico?
Ho 15 trigger
non voglio uno standard, diciamo TP 200 SL 300
ogni coppia di valute avrà un diverso TP e SL a seconda delle statistiche del trigger
se arriva un trigger con maggiore probabilità, voglio identificarlo e agire
7bit: non avete bisogno di magia separata per comprare e vendere, potete facilmente filtrarli con OrderType()
e si possono filtrare le coppie di valute con 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
//+------------------------------------------------------------------+//| 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);
}
Grazie, finalmente riesco a rivisitare questo thread e sta provando questo. Non capisco il campione. Perché OrderSend > 0, quindi eseguire un altro OrderSend? Si prega di aiutare!
Ho capito che il numero di sequenza aumenta con ogni ordine e che posso assegnarlo a un commento o a un numero magico, il che è fantastico. La parte migliore è che rimangono nel sistema anche dopo aver riavviato MT4.
Tuttavia, come faccio a identificarli e confrontarli in seguito?
Come ogni serie di ordini viene piazzata:
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);
cioè faccio trading in coppia, ordine 1 & 2, poi ordine 3 & 4, e così via....
Ordine 1 - Sequenza #1
Ordine 2 - Sequenza #2
Ordine 3 - Sequenza #3
Ordine 4 - Sequenza #4
Ordine 5 - Sequenza #5
Ordine 6 - Sequenza #6
Ora che hanno un numero di sequenza unico che aumenta,
Come faccio a selezionarli e confrontarli?
Vorrei selezionare e confrontare
Ordine 1 & 2, poi Ordine 3 & 4, poi Ordine 5 & 6, e così via ...
idea: si potrebbe usare sempre lo stesso numero magico come al solito per renderlo compatibile con tutto il resto che usa i numeri magici ma anche combinarlo con la stringa di commento includendo un numero nel commento che è unico per ogni coppia di trade. Potresti quindi trovare l'altro trade di ogni coppia di trade semplicemente cercando un trade con la stessa magia e lo stesso commento.
Come posso trovare un ordine per commento e numero magico?
Ho 15 trigger
non voglio uno standard, diciamo TP 200 SL 300
ogni coppia di valute avrà un diverso TP e SL a seconda delle statistiche del trigger
se arriva un trigger con maggiore probabilità, voglio identificarlo e agire
trigger1 eur/usd 100 prob: 94%, usd/jpy 300 prob:74% eur/jpy 200 prob.100%
se il trigger 1 è stato negoziato per una delle coppie eur/usd, non c'è più trading per quella coppia per quel trigger
voglio ancora scambiare per trigger2 trigger3 e (trigger1 solo coppia diversa)
y non
non avete bisogno di magia separata per comprare e vendere, potete facilmente filtrarli con OrderType()
grazie per il tuo aiuto
non avete bisogno di magia separata per comprare e vendere, potete facilmente filtrarli con OrderType()
Io uso un RANGE di numeri magici, così posso usare diversi metodi SL per i trade.
ad esempio MAGIC_NUMBER_BASE = 1234500
& poi uso 'offset' di 0-99 per raggruppare i miei trade per tipo di SL. Poi uso un codice come
if(OrderMagicNumber() < MY_MAGIC_LO || OrderMagicNumber() > MY_MAGIC_HI)per trovare le mie compravendite (in realtà quel codice è per ESCLUDERE le mie compravendite!)
Jon questa funzione emette numeri unici
Grazie, finalmente riesco a rivisitare questo thread e sta provando questo. Non capisco il campione. Perché OrderSend > 0, quindi eseguire un altro OrderSend? Si prega di aiutare!
Ho capito che il numero di sequenza aumenta con ogni ordine e che posso assegnarlo a un commento o a un numero magico, il che è fantastico. La parte migliore è che rimangono nel sistema anche dopo aver riavviato MT4.
Tuttavia, come faccio a identificarli e confrontarli in seguito?
Come ogni serie di ordini viene piazzata:
cioè faccio trading in coppia, ordine 1 & 2, poi ordine 3 & 4, e così via....
Ordine 1 - Sequenza #1
Ordine 2 - Sequenza #2
Ordine 3 - Sequenza #3
Ordine 4 - Sequenza #4
Ordine 5 - Sequenza #5
Ordine 6 - Sequenza #6
Ora che hanno un numero di sequenza unico che aumenta,
Come faccio a selezionarli e confrontarli?
Vorrei selezionare e confrontare
Ordine 1 & 2, poi Ordine 3 & 4, poi Ordine 5 & 6, e così via ...
Grazie in anticipo!
... Continua dalla risposta precedente
O forse potrei controllare quando il numero di sequenza aumenta?
Cioè dopo ogni serie di ordini? Come dopo 2 ordini.
Così quando si seleziona e si confronta, potrei solo selezionare gli ordini con lo stesso numero di sequenza.
Come codificare questo?
Grazie!
Salvare questi in un Array[][]
esempio.
Commercio 1
TicketArray [1] [0] = Ticket0;
TicketArray [1] [1] = Ticket1;
Scambio 2
TicketArray [2] [0]
TicketArray [2] [1]
Scambio 3
TicketArray [3] [0]
TicketArray [3] [1]
... E così via