[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 171

 
bestfx:
Ciao a tutti. Per favore, aiutatemi.

L'essenza è la seguente: C'è un bot che piazza automaticamente gli ordini in sospeso, ad un certo prezzo. ...
double main_price=1.251;
double price_to_byu=1.253;
double price_to_sell=1.249;
// --------
bool restriction=false;
if (Ask<=main_price)
if (OrdersTotal()>0)
{  for (int i=OrdersTotal()-1; i>=0; i--)
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderType()==OP_BUY || OrderType()==OP_BUYSTOP)
      {  if (OrderOpenPrice()==price_to_byu) restriction=true;
}  }  }
if (restriction==false)
{  OrderSend(NULL,OP_BUYSTOP,Lot,price_to_byu, ...);
   return(0);
}
// --------
restriction=false;
if (Bid>=main_price)
if (OrdersTotal()>0)
{  for (int i=OrdersTotal()-1; i>=0; i--)
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderType()==OP_SELL || OrderType()==OP_SELLSTOP)
      {  if (OrderOpenPrice()==price_to_sell) restriction=true;
}  }  }
if (restriction==false)
{  OrderSend(NULL,OP_SELLSTOP,Lot,price_to_sell, ...);
   return(0);
}

Se state facendo molti ordini simili, dovete usare gli array. Come? Leggete gli array.

 
Lisi4ka330:
a partire dal 1° giugno, le versioni più giovani di 416 build
non sono supportate.

Natasha, non sono più supportati dal tuo computer? )

Mettete 409 in parallelo al vostro terminale principale, in una cartella vicina, scaricate lì tutta la storia che vi serve e testate il più possibile, non avete bisogno di una connessione al server per questo. Se hai usato gli script di Birt, probabilmente sei comunque offline.

 
FAQ:
Dividi il prezzo per le cifre = riducilo a un intero e scrivilo in un medjic, poi cerca il medjic nell'array degli ordini aperti prima di impostare un nuovo ordine.

Non ha alcun senso.
 
paladin80:
Se state facendo molti ordini simili, dovete usare gli array. Come? Leggete gli array.

È il terzo giorno che leggo. :=( È più facile in php, ma non lo capisco qui.
 
Lisi4ka330 09.06.2012 20:33
Sì, ho provato ma non ha funzionato niente((((

Allora può essere fatto in un modo diverso.

Funzionerà sia in MT4 che in MT5.

1. Scarica tutte le zecche (sai da dove) e scrivile su un server come MS SQL server, perché il volume dei dati è enorme.

2. Scrivere una DLL per MT4 e MT5 per cooperare con il server SQL.

In MT4 si controlla il flag IsTesting ( ) e se è testing, invece dei valori delle quotazioni si sostituiscono i dati del database (il prezzo inverso al tempo) e questo è tutto, niente di complicato.

P.S. Questa variante è migliore perché funzionerà per qualsiasi build e su entrambe le MT rispetto a quella che hai usato con la modifica del codice macchina del programma.

 
bestfx:

:=( Questa è una stronzata.


Nel tuo caso, devi controllare prima di aprire se ci sono ordini già impostati con questo prezzo. Se vuoi confrontare i prezzi, devi ricordarti della normalizzazione e anche dello slippage.

In questo caso, verrà applicato il confronto standard di due interi (veloce).


Se si piazzano molti ordini simili, dovremmo usare gli array. Come? Leggete gli array.


OrdersTotal() e OrdersHistoryTotal() sono entrambi array.

 
pusheax:

Allora può essere fatto in un modo diverso.

Funzionerà sia in MT4 che in MT5.

1. Scarica tutte le zecche (sai da dove) e scrivile su un server come MS SQL server, perché il volume dei dati è enorme.

2. Scrivere una DLL per MT4 e MT5 per cooperare con il server SQL.

Quando MT4 controlla il flag IsTesting( ) e, se è in fase di test, al posto dei valori di quotazione si sostituiscono i dati del database (il tempo inverso del prezzo).

P.S. Questa variante è migliore, perché funzionerà per qualsiasi build e su entrambe le MT, di quella che hai usato con la modifica del codice macchina del programma.

Non funzionerà perché la transazione non sarà fatta usando le quotazioni del database, dirà che il prezzo non è corretto. È più facile allora scrivere il proprio tester.

Non confondere la ragazza, ho appena testato l'EA sulla build 409 con il vecchio script, tutto funziona alla grande.

 
alsu:

Non funzionerà, perché non puoi fare una transazione usando le quotazioni dal database, ti dirà che il prezzo è sbagliato. Sarebbe più facile scrivere il proprio tester.

Non confondere la ragazza, ho appena testato l'Expert Advisor sulla build 409 con un vecchio script, tutto funziona bene.


Beh, l'ho capito dopo. Ho cercato di creare qualcosa di simile, ma non sono mai riuscito a costruire le zecche, ma ora sono pronte.

Non posso farlo senza modificare il codice macchina.

Ho scritto questa idea per discutere, non per confondere, dato che l'idea mi è piaciuta molto e la farò io stesso.

 
pusheax:

Beh, l'ho capito dopo. È solo che io stesso ho provato a fare qualcosa di simile prima, ma non riuscivo a montare le zecche, ed eccole pronte.

Infatti, senza modifica del codice macchina sembra che non funzionerà.

Ho scritto questa idea per discutere, ma non per confondere, perché l'idea mi è piaciuta e la farò io stesso.

Se non sapete cosa farne, forse avete ragione, comincerò a lavorarci io stesso).

ps e anche con vere zecche, blackjack e puttane

 
bestfx:

Sono tre giorni che leggo. :=( È più facile in php, ma non riesco a capirlo qui.
Sono d'accordo con il moderatore, è meglio segnare ordini/posizioni che confrontare i prezzi aperti. Oltre al numero magico, potete usare il controllo dei commenti. Puoi scrivere il prezzo di apertura nel commento (ad esempio "EURUSD 1,251").
Motivazione: