Forex Forum

presenza ordine

Forum dedicato allo sviluppo di Expert Advisors e alle recensioni dei robot attualmente in commercio.

presenza ordine

Messaggioda gioforex » 25/03/2010, 21:39

ciao a tutti, grazie dell'invito a questo forum che e' giovane ma sembra interessante,
avrei una questione da proporre,se gentilmente qualcuno mi sa dare informazioni.

voglio inserire un ordine in acquisto, es. 1.3600
al momento in cui l'ordine viene effettuato, io mi ritrovo con un long aperto,
fino a qui....
adesso come faccio io a dirgli, ok, mi hai eseguito questo acquisto, adesso inseriscimi un altro acquisto es, 1.3550 se
scende ancora??
oppure, inseriscimi di nuovo lo stesso acquisto a 1.3600 quando il primo verra' chiuso in profit esempio a 1.3630???
centra qualcosa il numero magico??
grazie.
lo so che sono sciocchezze per voi, ma questo problemino non riesco a risolvero,
ciao
gioforex
Studente
Studente
 
Messaggi: 7
Iscritto il: 25/03/2010, 21:10

Re: presenza ordine

Messaggioda dail » 26/03/2010, 0:59

Benvenuto, grazie per esserti iscritto :-)

Dunque, andiamo per ordine.
Il magic number serve ad identificare tutti gli ordini eseguiti tramite l'Expert Advisor, in questo modo da codice riuscirai a filtrare tutti gli ordini eseguiti in automatico.
Per settare il magic number su un ordine è semplicissimo, ecco lo schema di un semplice EA.

Codice: Seleziona tutto
extern int MAGIC = 1234;

int init(){
   return(0);
}

int start(){
   //Invio ordine
   int ticket = OrderSend(Symbol(), OP_BUY, 1, Ask, 3, Ask-25*Point, Ask+25*Point, "commento", MAGIC, 0, Green);
   if(ticket > 0){
      Print("Ordine inviato correttamente");     
   }

   //Controllo solo gli ordini eseguiti dall'expert advisor
   for(int i=0; i < OrdersTotal(); i++){     
      if(OrderSelect(i, SELECT_BY_POS)){ 

         if (OrderMagicNumber() == MAGIC){
            //Trovato un ordine eseguito dall'expert advisor
         }

      }
   }

   return(0);
}



come puoi notare abbiamo la variabile MAGIC (input), settata a 1234, che verrà poi passata alla funzione OrderSend per identificare in futuro l'ordine qualora volessimo fare altre operazioni/controlli.
Tramite la for seguente, andrai a scorrere tutti gli ordini inviati e poi, con quella if(OrderMagicNumber() == MAGIC) filtrerai solo quelli con il magic number uguale a quello da te impostato.

Per quanto riguarda tutte le altre operazioni, tipo, apri un ordine quando il primo è chiuso oppure apri un ordine distante X pips dal quello precedente, è facile e sicuramente posso darti una mano a far funzionare il tutto, l'importante è avere la strategia ben chiara per poi poter buttare giu il codice.
Fammi sapere

Ciao

P.S. Attenzione ad eseguire l'EA che ho postato su un conto REAL, che l'ordine parte per davvero :-)
Avatar utente
dail
Moderatore
Moderatore
 
Messaggi: 306
Iscritto il: 12/03/2010, 13:38

Re: presenza ordine

Messaggioda gioforex » 26/03/2010, 17:14

grazie, molto gentile,
la strategia, e' ben definita, e se vuoi te la posso spiegare, adesso sto cercando di finire questo ea
a pezzettini, certo in questa maniera e' piu difficile ma continuo ad apprendere un po di programmazione,
se mi puoi aiutare sono certamente contento, se
poi mi puoi anche supervisionare il lavoro ancora meglio,
se c'e' la possibilita' di avere una consulenza anche sono d'accordo,
fammi sapere il tutto grazie.
torresigiorgio@libero.it
facebook torresi giorgio
gioforex
Studente
Studente
 
Messaggi: 7
Iscritto il: 25/03/2010, 21:10

Re: presenza ordine

Messaggioda dail » 26/03/2010, 17:34

ciao Giorgio,
certo, sono qui apposta... per qualsiasi problema di programmazione inserisci un messaggio in questo forum.

Fammi sapere
Avatar utente
dail
Moderatore
Moderatore
 
Messaggi: 306
Iscritto il: 12/03/2010, 13:38

Re: presenza ordine

Messaggioda gioforex » 26/03/2010, 18:32

grazie, allora, il problema e' questo,
ho un ordine in macchina diciamo, buy limit in sospeso, quando lo esegue quindi quando sono long di uno , voglio inserirne un altro, come devo fare?

grazie tante
gioforex
Studente
Studente
 
Messaggi: 7
Iscritto il: 25/03/2010, 21:10

Re: presenza ordine

Messaggioda dail » 26/03/2010, 18:56

Ciao Giorgio,
Allora, ecco il codice:

Codice: Seleziona tutto
extern int MAGIC = 1234;

bool aperto;

int init(){
   return(0);
}

int start(){
    //Controllo ordini inviati
   for(int i=0; i < OrdersTotal() && aperto==false; i++){     
      if(OrderSelect(i, SELECT_BY_POS)){
         int type = OrderType();
         
         if (type==OP_BUY || type==OP_SELL){
            //E' stato trovato un ordine aperto
            //Codice per invio nuovo ordine
            aperto=true;
         }

      }
   }

   return(0);
}


praticamente con questa for andrai a controllare tutti gli ordini inviati(buy limit - buy stop - sell limit - sell stop)...qualora ce ne sia uno eseguito (quindi a mercato) eseguirà la parte "Codice per invio nuovo ordine" dove potrai mettere la tua OrderSend con i parametri che desideri e poi terminerà il suo lavoro.

Fammi sapere

Ciao
Avatar utente
dail
Moderatore
Moderatore
 
Messaggi: 306
Iscritto il: 12/03/2010, 13:38

Re: presenza ordine

Messaggioda gioforex » 26/03/2010, 21:16

si, grazie, in parte funziona,
ma messo insieme al mio qualcosa si blocca, forse ti dovrei dire il sistema generale,
ma visto che mi devi guardare il programma per intero, dimmi come ti posso contattare,
che a questo punto si tratta di lavoro, visto che gratis finora poche volte mi
e' capitato di avere qualcosa, grazie.
il mio email e' torresigiorgio@libero.it
o facebook, stesso nome grazie
gioforex
Studente
Studente
 
Messaggi: 7
Iscritto il: 25/03/2010, 21:10

Re: presenza ordine

Messaggioda dail » 26/03/2010, 23:24

se vuoi tenere segreta la tua strategia, ti capisco e per questo ti invito a mandarmi un messaggio privato tramite questo forum...
Ma se sei alla ricerca di un aiuto per terminare completamente il tuo EA come ti ho detto anche prima, per me non ci sono problemi, puoi postarlo qui, non voglio soldi.
E' un piacere per me aiutare gli iscritti di questo sito.

Fammi sapere.
Avatar utente
dail
Moderatore
Moderatore
 
Messaggi: 306
Iscritto il: 12/03/2010, 13:38

Re: presenza ordine

Messaggioda gioforex » 27/03/2010, 0:09

Grazie delle risposte, in realta' sono solo preso in contropiede, visto che scrivo sugli altri forum da un paio di mesi con solo
2 o 3 risposte, quindi con molta fatica pochissimi passi fatti,
quindi non voglio tenere segreta nessuna tecnica , visto che applico un ts molto elementare che ti posso spiegare subito,

attivando l'ea il sul mercato , eurusd il sistema dovrebbe lanciare un buy_limit al prezzo piu vicino arrotondato allo 0.
es.. 1.3608 buylimit 1.3600
1.3605 buylimit 1.3600
1.3604 buylimit 1.3590 perche' purtroppo su active posso inserire almeno 5 pips da prezzo battente.

preso il buy sul mercato poniamo 1.3600 e profit 1.3610 immetto subito un altro buy a 1.3590 cioe' 10 punti sotto.
se il mercato sale e tocca il profit rimposto un altro buy a 1.3600 identico al precedente se invece continua a salire al
toccare di 1.3620 mi deve lanciare un buy a 1.3610.
insomma e' spiegato male, ma il concetto e' abbastanza elementare, io imposto un acquisto sempre sui numeri interi
1.3600 1.3610 1.3620 1.3630 a seconda dove sta il prezzo .. si che salga sia che scenda.
se il prezzo scende e prende un buy risalendo di 10 punti lo chiude con il profit e lo riapre identico sotto..
sono riuscito a farlo girare ma il troncamento l'ho risolto in maniera un po grezza visto che lo spostamento di un
double a 4 cifre su uno di 3 non lo tronca realmente.

logicamente e' la parte di un ts che va lanciato solo in condizioni di rialzo - laterale, ed e' una tecnica usata
anni fa con i fib a prezzo purtroppo molto molto caro, visto che ogni fib costava circa 30milioni, e lo impostavamo ogni
circa 500 punti di mercato, e' stata una tecnica proficua anche se un po spaventosa. con il forex e la sua possibilita'
di leva risulta alquanto leggera.
grazie di nuovo
gioforex
Studente
Studente
 
Messaggi: 7
Iscritto il: 25/03/2010, 21:10

Re: presenza ordine

Messaggioda dail » 27/03/2010, 0:49

hai già del codice, seppur con errori dal quale partire?
Avatar utente
dail
Moderatore
Moderatore
 
Messaggi: 306
Iscritto il: 12/03/2010, 13:38

Prossimo

Torna a Expert Advisors

Chi c’è in linea

Visitano il forum: CommonCrawl [Bot] e 0 ospiti