Come codificare? - pagina 79

 

Figo grazie ragazzi, entrambi i suggerimenti sono probabilmente migliori di quello su cui stavo lavorando.

 

Qualcuno mi aiuti per favore....

Ciao...

Spero che qualcuno qui possa aiutarmi a codificare questo EA martiangle e quello che voglio fare è:

1 . Se il 2° strato è aperto, voglio che il punto di destinazione al 1° strato si muova verso il 2° strato, quindi quando il punto di destinazione viene colpito al 2° strato, i 2 punti di destinazione possono chiudersi allo stesso tempo. Se il 3° strato è aperto, il 1° e il 2° strato possono muoversi verso il 3° punto di destinazione, quindi possiamo chiudere allo stesso tempo.

2.Need pips lock.When 1st layer open, and got profit example 15 pip (TP 32), the ea make locking at sl price(example 5 pip)So when price reversel 10 pip that post can close automatically with profit 5 pips.Just for 1st layer post only.2nd layer do not need activated because this martiangle EA.

Mi dispiace molto per il mio cattivo inglese, spero che qualcuno possa aiutarmi a mettere un codice a questo EA. Grazie a voi

martiangle_rsi_.mq4

Saluti

Davvero bisogno di aiuto persona

File:
 

Aiuto per i commenti, per favore

Sto cercando di impostare un commento da mostrare sullo schermo ma non ho molta fortuna

Sono riuscito ad ottenere il conteggio dei pip per una singola coppia ma non riesco a mostrare il totale per coppie multiple

Qualsiasi aiuto sarebbe fantastico

Questo è un esempio di quel codice

//========== FUNZIONE getPipValue

double getPipValue(double ord,int dir)

{

double val;

RefreshRates();

if(dir == 1) val=(NormalizeDouble(ord,Digits) -

NormalizeDouble(Ask,Digits));

else val=(NormalizeDouble(Bid,Digits) - NormalizeDouble(ord,Digits));

val = val/Point*co;

return(val);

}

//== fine della funzione

int getSpread()

{

int spread=MarketInfo(Symbol(),MODE_SPREAD);

return(spread);

}

//========== FUNZIONE getOpenOrders

void getOpenOrders()

{

int nsl, nsd;

stringa mngMagic, trailon;

int totalorders = OrdersTotal();

for(int j=0; j<totalorders;j++)

{

OrderSelect(j, SELECT_BY_POS, MODE_TRADES);

if((OrderType() == OP_BUY || OrderType() == OP_SELL) &&

OrderSymbol() == Symbol()&&(MagicNumber==0 || MagicNumber ==

OrderMagicNumber())

{

double val=getPipValue(OrderOpenPrice(),OrderType());

//int val = OrderProfit()/(OrderLots()*10);

}

if(MagicNumber == 0)

mngMagic = "Tutti "+Symbol()+" i trade;

altrimenti

mngMagic = "Compravendite con numero magico = "+NumeroMagico;

//RefreshRates();

Comment("Saldo: ",ContoSaldo(),", Patrimonio del conto: ",ContoEquità(),", Profitto del conto: ",AccountProfit(), "Ordine aperto: ",OrderOpenPrice(),

"\nPip Count: ", val,

"‗My Account Cutoff Limit: ",Open_Loss_To_CloseTrades,

"\nGestione: ", mngMagic);

Saluti

 

Il valore in pip di un ordine corrente può essere ottenuto come segue:

( OrderClosePrice() - OrderOpenPrice() ) / MarketInfo( OrderSymbol(), MODE_POINT )

Se volete usare "bid" e "ask", dovete usare anche quelli relativi al simbolo dell'ordine, cioè MarketInfo( OrderSymbol(), MODE_BID ) e MarketInfo( OrderSymbol(), MODE_ASK ).

 

ralph.ronnquist

Buongiorno

grazie per il codice l'ho usato ma conta solo per una coppia e non il totale di tutte le coppie.

Ho sperimentato vari scenari ma ancora non funziona

Ho un ea che apre 3 posizioni che eseguo su 5 coppie posso vedere il conteggio dei pip per ogni coppia ma non il collettivo.

 
Beno:
ralph.ronnquist

Gidday

grazie per il codice l'ho usato ma conta solo per una coppia e non il totale di tutte le coppie.

Ho sperimentato vari scenari ma ancora non funziona

Ho un ea che apre 3 posizioni che eseguo su 5 coppie posso vedere il conteggio dei pip per ogni coppia ma non il collettivo.

Bene, se hai familiarità con le variabili globali, puoi usarle per memorizzare le informazioni sui pip su ogni coppia a cui fa riferimento ogni simbolo. Create un'altra variabile globale che faccia riferimento al valore totale dei pip e chiamate questa particolare variabile globale, aggiornatela quando i pip aumentano e memorizzatela. Le variabili globali possono essere raggiunte da ogni ea poiché sono memorizzate nella memoria di MT4.

Posso aiutare a codificarlo per te se vuoi.

 

Buongiorno ShahJB

Ho visto le variabili globali nel codice prima, ma ho avuto zero esperienza con loro quindi sì, vorrei accettare il vostro aiuto per codificare questo perché mi sta facendo impazzire

 
Beno:
Gidday ShahJB Ho visto le variabili globali nel codice prima ma ho avuto zero esperienza con loro quindi sì, vorrei accettare il tuo aiuto per codificare questo come mi sta facendo impazzire

Ho appena codificato il seguente prontamente. Perché non aggiungi prima questo codice? Fai una prova n pm me se fallisce. Ho bisogno di dormire un po'.

stringa val_old_string = "val_old" + Symbol();

int val_old = GlobalVariableGet(val_old_string);

if(val != val_old)

{

int pips_increment_decrement;

int current_total_pips;

stringa counter = "Contatore di pips";

double pips_counter = GlobalVariableGet(counter);

se (val>val_old)

{

pips_increment_decrement = val - val_old;

current_total_pips = pips_increment_decrement + pips_counter;

GlobalVariableSet(counter, current_total_pips);

GlobalVariableSet(val_old_string, val);

}

else

{

pips_increment_decrement = val_old - val;

current_total_pips = pips_counter - pips_increment_decrement;

GlobalVariableSet(counter, current_total_pips);

GlobalVariableSet(val_old_string, val);

}

}

 

Perché non funziona?

Salve, sono un principiante assoluto della programmazione,

Sono un principiante assoluto della programmazione. Grazie ai post e alle risorse di apprendimento su questo sito ho trovato il coraggio di tentare di costruire alcuni EA, uno dei quali utilizzerà Lguerre come uno dei trigger (ho usato questo sito per aiutarmi: Expert Advisor Builder per MetaTrader 4 ). Il problema del mio EA è che non apre gli ordini di acquisto quando vengono colpiti i trigger. Ho costruito un paio di EAs usando il sito sopra menzionato e questi eseguono ordini per posizioni lunghe e corte senza problemi (gli EAs usano RSI's). Per favore date un'occhiata all'EA allegato, 3-28, e fatemi sapere cosa sto facendo di sbagliato.... sto usando il formato sbagliato per i livelli da colpire prima che un trade venga eseguito? Il Laguerre ha bisogno di parametri aggiuntivi?

Ho speso una quantità imbarazzante di tempo su questo e sono sul punto di rinunciare.... qualsiasi aiuto è MOLTO apprezzato!!!!!

Sembra che io abbia trovato la risposta... perché ho bisogno di moltiplicare la Laguerre nel mio EA, però?????

File:
3-31.mq4  10 kb
 

Mi sono imbattuto in un problema di chiusura delle posizioni. Aiuto per favore

Mi sono imbattuto in un problema che non so come risolvere. Il mio programma ha alcuni ordini aperti e li chiude tutti insieme, ma a volte penso che alcuni degli ordini non siano riempiti, quindi continua ad aspettare che siano riempiti e questo blocca il mio programma. Quale avete trovato il modo migliore per chiudere tutti gli ordini aperti? Vi ringrazio gentilmente per il vostro aiuto.

Ecco il codice:

int OrdersTotalLong()

{

int order_total = 0;

for (int i = 0; i < OrdersTotal(); i++)

{

OrderSelect(i,SELECT_BY_POS, MODE_TRADES);

if (OrderType() == OP_BUY)

order_total++;

}

return(order_total);

}

int MaxLongOrder()

{

int order = 0;

double lotsbuyed = 0;

for (int i = 0; i < OrdersTotal(); i++)

{

OrderSelect(i,SELECT_BY_POS, MODE_TRADES);

if ((OrderType() == OP_BUY) && (OrderLots() > lotsbuyed))

{

lotti acquistati = OrderLots();

ordine = i;

}

}

return(order);

}

int CloseLong()

{

while (OrdersTotalLong() > 0) //fino a quando non ci sono più ordini aperti (chiudere tutti)

{

if (OrderSelect(MaxLongOrder(), SELECT_BY_POS, MODE_TRADES) == false) continua;

OrderClose(OrderTicket(),OrderLots(), Bid, 3, Green);

}

}

return(0);

}