[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 75

 
Potete dirmi quale codice scrivere, in modo che quando l'affare è chiuso, l'affare successivo può essere aperto solo sulla prossima barra?
 
Puoi per favore dirmi come fare in modo che le candele sul grafico dei prezzi siano colorate di verde quando Awesome Oscillator e Acceleration/Deceleration Oscillator sono verdi, siano colorate di rosso quando Awesome Oscillator e Acceleration/Deceleration Oscillator sono rossi, e quando gli indicatori sono di colori diversi, le candele dovrebbero essere grigie?
 
gmMarat писал(а) >>
Potete dirmi quale codice dovrebbe essere scritto per chiudere un affare, in modo che l'affare successivo possa essere aperto solo sulla prossima barra?

Quindi la domanda è: come si chiude l'affare? È una fermata (il che è più complicato), o la chiudiamo noi stessi? Se la chiudiamo noi stessi, è molto più facile.

 
Nosferatu писал(а) >>
Puoi per favore dirmi come fare in modo che le candele sul grafico dei prezzi siano colorate di verde quando Awesome Oscillator e Acceleration/Deceleration Oscillator sono verdi, siano colorate di rosso quando Awesome Oscillator e Acceleration/Deceleration Oscillator sono rossi, e quando gli indicatori sono di colori diversi, rendere le candele grigie?

Non ho mai dipinto un candeliere, ma ho sicuramente visto questo tacchino nella base. Davvero, circa quattro mesi fa. Cercatelo.

 
infinum13 >> :

Quindi la domanda è: come si chiude l'affare? È una fermata (il che è più complicato), o la chiudiamo noi stessi? Se la chiudiamo noi stessi, è molto più facile.

I trade sono chiusi al Take Profit o Stop Loss!

 

Domanda.

Ho un indicatore che scrive una quotazione per lo strumento come questo - 2321.50000000


Come posso sbarazzarmi degli zeri in più?

 

Molto bene gli esperti di scrittura qui. http://www.vedikhin.ru/2006/06/expert-advisors-overview.html

E che gli dei del forex mi perdonino, è in formato Wordov.

File:
 

Aiuta anche me.

Limitazioni del compilatore. Vorrei sapere delle restrizioni sugli array (quanti array o numero totale di elementi o qualcos'altro come la memoria allocata), e sul numero di variabili globali nel senso di superglobali.

 

Ciao a tutti.

Ho deciso di scrivere un esperto. Ha preso uno Stoch per questo. Penso che dovrebbe avere un solo ordine, ma venderà sopra 80 e chiuderà sotto 50. Ho anche aggiunto lo StopLoss per ridurre le perdite. L'ho testato. L'esperto sembra funzionare, ma a volte gli StopLoss vengono presi uno dopo l'altro. Così ho deciso di cambiare le condizioni di trading dopo la prima perdita in modo che differiscano notevolmente da quelle iniziali. A questo scopo, ho introdotto la funzione isCloseLastPosByStop che ho preso da Kima e mi è piaciuta. Se la perdita è lavorata, dà segnali e scrive nel log; dopo il segnale if(SSL==true) imposto nuove condizioni di vendita. L'ho scritto, compilato, lanciato - funziona, ma ci vogliono anche diverse LossO in alcuni punti di fila per farlo smettere. Dato che non sono molto esperto in MQL4 non so cosa sia sbagliato. Per favore aiutatemi in ogni modo possibile..... non siamo di queste parti...... e forse qualcuno mi dirà come implementare questa idea in un altro modo. Grazie in anticipo, questo è un buon posto, non sono mai andato senza un consiglio qualificato....


#proprietà copyright "Alex"

#proprietà link "http://www.сайта.net"
//---- parametri di ingresso
extern int int MagicNamber=88881;
extern int K_per=30;
extern int D_per=8;
extern int Slow=10;
extern double Lots=1.0;
extern double StopLoss=300;
extern double SSL=0;

//+------------------------------------------------------------------+

int start()
{
int
cnt=0,
biglietto,
totale;
doppio
StochK_0, // valore della linea K
StochD_1, // valore della linea D
SL=StopLoss;
isCloseLastPosByStop();
se (Bars<100)
{
Stampa("barre inferiori a 100");
ritorno(0);
}
StochK_0=iStochastic(NULL, 0, K_per,D_per,Slow,MODE_SMA,0,MODE_MAIN, 0); // K
StochD_1=iStochastic(NULL, 0, K_per,D_per,Slow,MODE_SMA,0,MODE_MAIN, 2); //D
total=OrdersTotal();
se(totale<1)
if ((StochK_0>StochD_1) && StochD_1 > 80) // condizione di vendita
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green);
se(biglietto>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Stampa("Ordine SELL aperto: ",OrderOpenPrice())
}
else Print("Error opening SELL order : ",GetLastError());
ritorno(0);
}
for(cnt=0;cnt<totale;cnt++)
{
RefreshRates();
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // questa è una posizione aperta? OP_BUY o OP_SELL
OrderSymbol()==Symbol()) // lo strumento corrisponde?
{
if(OrderType()==OP_SELL) // la posizione è aperta
SSL=isCloseLastPosByStop();
if(SSL==true)

{
Stampa("StopLoss");
}
total=OrdersTotal();
se(totale<1)
if ((StochK_0<StochD_1) && StochK_0 < 50) // condizione di vendita se StopLoss è attivato
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green);
se(biglietto>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Stampa("Ordine SELL aperto: ",OrderOpenPrice())
}
else Print("Error opening SELL order : ",GetLastError());
ritorno(0);
}
for(cnt=0;cnt<totale;cnt++)
{
RefreshRates();
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL && // questa è una posizione aperta? OP_BUY o OP_SELL
OrderSymbol()==Symbol()) // lo strumento corrisponde?
{
if(OrderType()==OP_SELL) // la posizione è aperta
{
if(StochK_0>StochD_1 && StochD_1 < 50) // condizione di chiusura
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // chiudere la posizione
return(0); // uscire
}}}}}}}
//___user fu-ya
bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {
datetime t;
doppio ocp, osl;
int dg, i, j=-1, k=OrdersHistoryTotal();

if (sy=="0") sy=Symbol();
per (i=0; i<k; i++) {
se (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
se (OrderSymbol()==sy || sy==") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
se (op<0 || OrderType()==op) {
se (mn<0 || OrderMagicNumber()==mn) {
se (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}}}}}}}
se (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
dg=MarketInfo(sy, MODE_DIGITS);
if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
ocp=NormalizeDouble(OrderClosePrice(), dg);
osl=NormalizeDouble(OrderStopLoss(), dg);
se (ocp==osl) return(True);
}
return(False);
}
 
luka писал(а) >>

Domanda.

Ho un indicatore che scrive una quotazione per lo strumento come questo - 2321.50000000

Come sbarazzarsi degli zeri extra?

L'operatore DoubleToStr() vi aiuterà.