Come codificare? - pagina 201

 

Come migliorare questi risultati?!

Ciao,

Sto scrivendo il mio primo EA che in parte mostra bei numeri nel back testing. Tuttavia, non riesco a capire come migliorare le parti negative.

In primo luogo, ha un'alta percentuale di vincita dell'86% ma solo un piccolo fattore di profitto perché i trade perdenti perdono molto di più di quelli vincenti!

Ho un MM in atto che non utilizza più del 5% del saldo del conto per ogni trade e su tutti i trade attivi non può essere utilizzato più dell'11% del saldo del conto. Inoltre seguo tutti gli stop loss.

Sembra che sto chiudendo (OrderClose) i trade vincenti troppo presto e taglio i trade perdenti troppo tardi (o S/L).

Qual è una buona strategia per questo? Ho implementato qualcosa come "non chiudere i trade vincenti anche se c'è un segnale di closebuy" ma anche questo non ha funzionato meglio!

Apprezzerei qualsiasi suggerimento! Il rapporto completo può essere trovato qui.

 

modo più semplice per aggiungere un TP di 3 pip per ogni operazione manuale?

Ho bisogno di aggiungere un take profit di 3 pip sul forex per ogni trade inserito manualmente. qual è il modo più semplice per farlo? non ho competenze di programmazione e non riesco a trovare alcun valore predefinito da impostare nelle opzioni di Metatrader 4.

 

Resettare l'ordine di acquisto stop

Salve,

Ho scritto questo codice e anche se si compila non funziona. (Nel senso che non cancella il buystop)

Stavo pensando che ci potrebbe essere qualcosa di sbagliato con la dichiarazione "for" ma sono abbastanza nuovo quindi non sono sicuro.

Se qualcuno potesse indicarmi il problema, lo apprezzerei molto.

grazie

if( StopResetMinutes > 0)

{

total = OrdersTotal();

if(total>0)

for(i=0;i<total;i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes ) OrderDelete(OrderTicket());

{

if(PrintComments) Print("Buy Stop Deleted.");

}

}

}

}

 
asgard2:
Ciao,

Ho scritto questo codice e anche se si compila non funziona. (Nel senso che non cancella il buystop)

Stavo pensando che potrebbe esserci qualcosa di sbagliato nella dichiarazione "for", ma sono abbastanza nuovo quindi non sono sicuro.

Se qualcuno potesse indicarmi il problema, lo apprezzerei molto.

grazie

if( StopResetMinutes > 0)

{

total = OrdersTotal();

if(total>0)

for(i=0;i<total;i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes ) OrderDelete(OrderTicket());

{

if(PrintComments) Print("Buy Stop Deleted.");

}

}

}

}

[/code]

[CODICE] if( StopResetMinutes > 0)

{

totale = OrdiniTotali();

se(totale>0)

for(i=0;i<totale;i++)

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes )

{

OrderDelete(OrderTicket());

if(PrintComments) Print("Buy Stop Deleted.");

}

}

}

}
 
asgard2:
Ciao,

Ho scritto questo codice e anche se si compila non funziona. (Nel senso che non cancella il buystop)

Se vuoi chiudere gli ordini BUY o SELL, devi usare la funzione OrderClose().

 
okfar:

if(OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol())

{

if((TimeCurrent() - OrderOpenTime()) /60 > StopResetMinutes )

{

OrderDelete(OrderTicket());

if(PrintComments) Print("Buy Stop Deleted.");

}

}

}

}

Sai, ho lavorato su questo per due giorni e tu l'hai risolto in pochi secondi...

Grazie, grazie, grazie, grazie... Grazie e grazie...

Spero di sembrare grato perché sono entusiasta!

cheers

 

Cari tutti,

Ho una domanda semplice, credo.

Ho un indicatore che mi notifica con un pop-up (allarme) e volevo aggiungere un suono personalizzato (diverso da quello standard alert.wav).

Ho notato che una volta che l'evento accade e l'allarme appare, non importa quale suono "personalizzato" ho programmato nell'indicatore, Metatrader 4 suonerà SEMPRE il suono che ho assegnato per l'allarme (di default questo è alert.wav, vedi il menu MT4 Strumenti>Opzioni>Eventi).

E' possibile programmare l'indicatore in modo tale da ottenere sia un allarme visivo che un allarme sonoro personalizzato assegnato...?

Molte grazie in anticipo!

 

In realtà, puoi prendere qualsiasi suono e chiamarlo alert.wav e sostituire il file originale.

 

Cambiare l'avviso personalizzato

Snowski:
Cari tutti,

Ho una domanda semplice, credo.

Ho un indicatore che mi notifica con un pop-up (allarme) e volevo aggiungere un suono personalizzato (diverso da quello standard alert.wav).

Ho notato che una volta che l'evento accade e l'allarme appare, non importa quale suono "personalizzato" ho programmato nell'indicatore, Metatrader 4 suonerà SEMPRE il suono che ho assegnato per l'allarme (di default questo è alert.wav, vedi il menu MT4 Strumenti>Opzioni>Eventi).

E' possibile programmare l'indicatore in modo tale da ottenere sia un allarme visivo che un allarme sonoro personalizzato assegnato...?

Molte grazie in anticipo!

Ciao Snowski,

Prova............

if (alert_ON == true) // per attivare o disattivare l'allarme sonoro

{

Alert ("Key in you custom PopUp Here",Symbol(),"-",TimeFrame);

PlaySound("custom.wav");

}

Non sono molto bravo a codificare, ma puoi provare questo come dovrebbe funzionare. il .wav personalizzato, puoi inserire il tuo nome di file nel ("??????.wav")

se vuoi essere in grado di impostare l'allarme on e off, devi anche aggiungere

extern bool alert_ON = True; // o false all'inizio del codice del tuo indicatore

 

Funzione storia

Ciao,

Ho questo codice qui sotto. Sto cercando di implementare un ritardo tra i miei ordini buystop nel caso in cui siano stati cancellati. Non ho mai usato la funzione storia prima.

Non riesco a compilarlo a causa di un errore di parentesi sbilanciate, qualcuno può dirmi perché queste sono sbilanciate?

Inoltre, qualcuno può dirmi se sono sulla strada giusta o se dovrei cercare un altro modo per farlo?

if ((type == _OP_BUYSTOP) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))//Time Delay for the next Buy Stop Order

int hstTotal=OrdersHistoryTotal();

for(i=0;i<hstTotal;i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)

Print("Access to history failed (",GetLastError(),")"); break;

{

if (OrderDelete() && (((TimeCurrent() - OrderCloseTime())/60) =< NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;

}

}

Grazie

Motivazione: