Aiuto per la codifica - pagina 109

 

modificaordine pendente

Ciao a tutti, ho provato a programmare una modifica del prezzo per gli ordini pendenti. È uno dei miei primi EA. Voglio scrivere il maggior numero di EAs in modo da poterne scrivere di complessi in seguito. Con il mio ordine di modifica ho il problema che non funziona quando lo inserisco in un grafico sul mio account demo. Qualcuno può trovare gli errori e aiutarmi a correggerli? Grazie. Non ho davvero più indizi. Saluti

{ RefreshRates(); double ppoint=MarketInfo(OrderSymbol(), MODE_POINT); int total=OrdersTotal(); double pBid=MarketInfo(OrderSymbol(), MODE_BID); double pAsk=MarketInfo(OrderSymbol(), MODE_ASK); double priceNew; //---- for(int i=0; i50*ppoint) { priceNew=(pBid-50*ppoint); OrderModify(OrderTicket(),priceNew,0,OrderStopLoss(),OrderTakeProfit()); Print("Modified Order"); } } } if (OrderType()==OP_SELLSTOP) { if (OrderOpenPrice()-pAsk>50*ppoint) { priceNew=(pAsk+50*ppoint); OrderModify(OrderTicket(),priceNew,0,OrderStopLoss(),OrderTakeProfit()); Print("Modified Order"); } } } } }
 

Ehi Robert, grazie per il tuo aiuto finora. Come faccio a postare correttamente il codice qui? Grazie e salute.

 
fabian103:
Ehi Robert, grazie per il tuo aiuto finora. Come faccio a postare correttamente il codice qui? Grazie e salute.

fabian103

Dovresti fare un semplice copia e incolla in quella casella di codice php

Per qualche motivo il tuo codice è "dappertutto". Prova. Se non funziona prova ad allegare la parte di codice che vuoi rivedere come un file separato (usando lo strumento allegato - quello indicato nell'immagine)

File:
attach.gif  36 kb
 

Ciao,

Ho cercato di calcolare il valore delle bande di bollinger all'interno dell'indicatore stocastico ma non ci sono riuscito.

Ottengo il valore riferito alla coppia, ma ho bisogno del valore che dovrebbe essere tra 0 e 100.

Qualche suggerimento?

Grazie

 
metcalfe:
Ciao,

Ho cercato di calcolare il valore delle bande di bollinger all'interno dell'indicatore stocastico ma non ci sono riuscito.

Ottengo il valore riferito alla coppia, ma ho bisogno del valore che dovrebbe essere tra 0 e 100.

Qualche suggerimento?

Grazie

Presumo che tu intenda il calcolo delle bande di Bollinger di uno stocastico (usando i valori dello stocastico invece dei prezzi dei simboli). Non puoi farlo con un built in iBands() perché usa sempre i prezzi del grafico principale.

Potreste usare iBandsOnArray() ma con esso avete un eterno problema di metatrader: le deviazioni possono essere solo moltiplicatori interi. Non è possibile impostare le deviazioni su valori frazionari. Quindi, la cosa migliore è usare le funzioni iStdDevOnArray() e iMaOnArry() per calcolare le vostre bande di Bollinger di qualsiasi valore e con qualsiasi larghezza delle bande. Nel caso dello stocastico il codice che lo fa sarebbe simile a questo:

for(int i=limit; i>=0; i--) stoch = iStochastic(NULL,0,StochPeriod,1,StochSlowing,MODE_SMA,StochPrice,MODE_MAIN,i);

for( i=limit; i>=0; i--)

{

double dev = iStdDevOnArray(stoch,0,BollingerPeriod,0,MODE_SMA,i);

bollmi = iMAOnArray(stoch,0,BollingerPeriod,0,MODE_SMA,i);

bollup = bollmi+BollingerDeviations*dev;

bolldn = bollmi-BollingerDeviations*dev;

}

Allego anche l'indicatore stesso, così potete continuare a sperimentarlo. Si presenta così sul grafico:

____________________

PS: i valori delle bande possono superare i limiti di 0 e 100 (nei casi in cui Stocastico è in bilico intorno a 0 o 100) a seconda di quale moltiplicatore di bande usi per le deviazioni e qual è la lunghezza del calcolo delle bande di Bollinger stesso

 
mladen:
Presumo che tu intenda calcolare le bande di Bollinger di uno stocastico (usando i valori dello stocastico invece dei prezzi dei simboli). Non è possibile farlo con un built in iBands() perché usa sempre i prezzi del grafico principale.

Potresti usare iBandsOnArray() ma con esso hai un eterno problema di metatrader: le deviazioni possono essere solo moltiplicatori interi. Non è possibile impostare le deviazioni su valori frazionari. Quindi, la cosa migliore è usare le funzioni iStdDevOnArray() e iMaOnArry() per calcolare le vostre bande di Bollinger di qualsiasi valore e con qualsiasi larghezza delle bande. Nel caso dello stocastico il codice che lo fa sarebbe simile a questo:

Questo è SUPER AWESOME!!!!!

Grazie mille, ho provato per tanto tempo.

E grazie per la risposta super veloce.

Un'altra domanda stupi.

L'indi funziona molto bene ma non riesco ad ottenere il numero giusto sull'ea riguardo al valore delle bande.

Per esempio come nella foto che hai allegato i numeri 81...67..54....

 
metcalfe:
Questo è SUPER AWESOME!!!!!

Grazie mille, ho provato per così tanto tempo.

E grazie per la risposta super veloce.

Un'altra domanda stupi.

L'indi funziona molto bene ma non riesco ad ottenere il numero giusto sull'ea riguardo al valore delle bande.

Per esempio come nella foto che hai allegato i numeri 81...67..54....

:):)

La lunghezzastocastica su quell'esempio è impostata a 32. Questa è l'unica differenza rispetto ai parametri di default

 
mladen:
:):):) La lunghezza stocastica in quell'esempio è impostata a 32. Questa è l'unica differenza rispetto ai parametri di default

Scusate...non mi sono spiegato molto bene quello che volevo chiedere.

Nel mio ea sto cercando di ottenere il numero per esempio della banda superiore o inferiore nella finestra di stoch come nell'immagine. Per esempio voglio nell'ea recuperare la banda superiore che è 81.8116 e ho codificato come

Comment(iCustom(NULL,0, "name",24,0,MODE_UPPER,0)); \Renominato l'indi

ma non ho il numero giusto.

Dove sbaglio?

Grazie

 
metcalfe:
Scusa... non mi sono spiegato molto bene quello che volevo chiedere.

Nel mio ea sto cercando di ottenere il numero per esempio della banda superiore o inferiore nella finestra stoch come nell'immagine. Per esempio voglio nell'ea recuperare la banda superiore che è 81.8116 e ho codificato come

Comment(iCustom(NULL,0, "name",24,0,MODE_UPPER,0)); \Renominato l'indi

ma non ho il numero giusto.

Dove sbaglio?

Grazie

Fallo in questo modo:

double upperBand = iCustom(NULL,0,"name",24,1,0,0);[/PHP]

The problem was that you can not put 0 in place of the slowing parameter since in that case metatrader will cause an error when calculating stochastic, and you will always get 0 as a return value, so use 1 instead (it is equivalent to no smoothing of the stochastic value). Also, better to use buffer numbers (MODE_MAIN is a reserved word in MQL - it 0 but in some cases they are not what you expect them to be). To get the rest of the values you would then have to write something similar to this :

[PHP]double middleBand = iCustom(NULL,0,"name",24,1,1,0);

double lowerBand = iCustom(NULL,0,"name",24,1,2,0);
 

Ok...

Super grazie.

Mi hai salvato ....

Motivazione: