ordersend() aiuto nella codifica... - pagina 3

 
mugged:

Raptor, se non ti dispiace... come pensavi di controllare la connettività via php?

Quello che avevo in mente era questo:

L'EA invierà un piccolo file via FTP ogni 2 minuti (potrebbe essere 5 minuti, 30 minuti, qualunque sia la vostra tolleranza... * ) al mio server web ospitato, in esecuzione su quel server web sarà un lavoro Cron che cerca il file ricevuto via FTP e controlla se è stato aggiornato negli ultimi 2 minuti * se non lo è mi invia una e-mail di avviso.

 
SDC:
Ho sempre fatto in questo modo perché è così che si fa negli esempi del libro MQL4, ma ora sto pensando che non sembra corretto, sicuramente se si apre sul prezzo Ask si vuole prendere profitto a quel prezzo + l'importo del TP, e si vuole fermare a quel prezzo - l'importo SL?

Se vuoi fermarti al prezzo-x. Cosa significa? Vuoi fermarti quando il Bid raggiunge il prezzo-x (o quando l'Ask lo raggiunge).

Se vuoi uno SL di 3 pip su un acquisto e usi l'Ask - 3*pips2dbl. Nel momento in cui aprite siete a 1 pip di distanza (supponendo uno spread di 2 pip.) Ancora una volta dipende dalla vostra definizione

Se intendi quando il Bid raggiunge il prezzo-x, su un acquisto il tuo SL sarebbe il prezzo-x. Ma su una vendita vuoi ancora fermarti a prezzo-x ma il prezzo di attivazione deve essere relativo all'ask. prezzo-x+spread.

Cosa fai quando lo spread cambia? Su una vendita, questo significa che per chiudere alla stessa posizione (un Bid) devi modificare il TP/SL. Dipende dalla tua definizione.

Quello che faccio io è fare tutti i calcoli relativi al Bid, e aggiustare alla fine.

//want to open at P
if (OP == OP_BUY)  double bid.to.open = Ask-Bid, bid.to.stop = 0,       DIR=+1.;
else                      bid.to.open = 0;       bid.to.stop = Ask-Bid; DIR=-1.;
:
if ((Bid - P) *DIR >= 0.){ // Time to open
  double openPrice = Bid + bid.to.open,
  OrderSend(NULL, OP, v, Bid+bid.to.open...)
 
WHRoeder:

Il mio approccio è quello di segnalare solo l'errore e tornare indietro.

La mia preoccupazione è che ho un ordine aperto con SL & TP = 0 e il mio EA non ha una connessione a Internet . . . . Preferirei essere avvisato di questa possibilità anche se il mio EA è su un VPS o sul mio server colocated.
 

Non sono in disaccordo con questo, ho detto "segnalare l'errore".

Non c'è proprio nulla che l'EA possa fare con isConnected()==false se non aspettare.

Non c'è proprio nulla che l'EA possa fare con ERR_TRADE_TIMEOUT se non aspettare e poi vedere.

Ritornare dall'inizio e aspettare il prossimo tick e poi recuperare è il più semplice.

 
WHRoeder:
Non sono in disaccordo con questo, ho detto "segnalare l'errore". Non c'è niente che l'EA possa fare con isConnected()==false o ERR_TRADE_TIMEOUT se non aspettare il prossimo tick e poi vedere.
Certo, mi stavo solo assicurando che avessi capito dove volevo arrivare, ad un certo punto vorrei un cane da guardia che mi dica che qualcosa non va... da qui l'idea del cron job e del PHP.
 
mugged:

Raptor, se non ti dispiace... come pensavi di controllare la connettività via php?

Forse qualcosa del genere...

<?php
$to = "recipient@example.com";
$subject = "EA is silent";
$body = "EA has stopped responding . . . ";

$file = 'somefile.txt';
$filetime = filemtime($file);
$timetwomins = time()-120; // two mins ago

if ($filetime < $timetwomins) {
   mail($to, $subject, $body)
}
?>
 

Credo che quello che farò è avere un avviso via email appena prima che l'ordine si attivi e poi un altro che confermi che lo stop è stato modificato.

Così se ricevo la prima e la corrispondente email di modifica non arriva, allora so che ci sono dei problemi.

 
mugged:

Credo che quello che farò sarà un avviso via email appena prima che l'ordine si inneschi e poi un altro che confermi che lo stop è stato modificato.

Così se ricevo la prima e la corrispondente email di modifica non arriva, allora so che ci sono dei problemi.

Penso di inviare una mail dopo che l'ordine scatta e un'altra che conferma che lo stop è stato modificato
 
qjol:
Penso che inviare una mail dopo che l'ordine scatta e un'altra conferma che lo stop è stato cambiato

La mia unica preoccupazione con l'invio della mail dopo è cosa succede se l'ordine scatta e poi la tua connessione muore prima che la mail possa essere inviata...

Nell'altro modo hai la prima mail che ti dice che qualcosa sta per scattare, e poi la seconda che conferma la modifica dello stop.

 
RaptorUK:

Forse qualcosa del genere...


Raptor, mi piace questa idea. Ci ho pensato in passato ma non avevo idea di come fare.

Quello che ho in questo momento è solo l'EA che invia una mail ogni ora confermando che è attivo e funzionante. Avrei solo bisogno di un modo per controllare la posta e se non arriva, inviare un avviso. Stessa idea, approccio diverso, credo.