Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Altra domanda
ora il mio EA come questo
se(FastMA2 SlowMA1)
{
ChiudiPosizioni();
OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Ask-SLpips*Point,Ask+(45*Point),"",MAGIC,0,Blue);
ritorno(0);
Voglio cambiare in questo modo
1. 15minuti timeflame accadere acquistare segno
2. se poi 5minuti timeflame MA cross segno buy già, anche
ClosePosition. e ottenere una nuova posizione
se poi 5minuti timeflame MA cambiare vendere segno già
attendere 5minutes timeflame cambiare segno buy,
poi ClosePosition. e ottenere una nuova posizione
Per favore ditemi come scrivere questo programma.
Ciao
Sto cercando un po' di aiuto, ho un EA che sto usando in demo e con cui sto anche imparando a codificare. Sto cercando di capire come aggiungere un commento al sistema per mostrarmi quale dei 4 criteri di ingresso è stato utilizzato per aprire la posizione.
qualsiasi aiuto sarebbe grande
grazie
Beno
Ciao
Sto cercando un po' di aiuto, ho un EA che sto usando in demo e con cui sto anche imparando a codificare. Sto cercando di capire come aggiungere un commento al sistema per mostrarmi quale dei 4 criteri di entrata è stato utilizzato per aprire la posizione. ad esempio se è stato utilizzato long2 allora mostra il segnale long2
qualsiasi aiuto sarebbe grande
grazie
BenoDopo che la tua condizione è soddisfatta e usi il comando Ordersend(), inserisci semplicemente una frase Comment(), Alert(), o Print(). Qualunque cosa vogliate usare.
Qualcosa di simile a questo:
if ( long2 == true)
{
Ordersend();
{
Print(" segnale long2 preso ");
}
}
Spero che questo aiuti.
Grazie Wolfe
Mi è venuto da ridere, ho messo quello che hai suggerito e ha funzionato più o meno, ma ora ho solo il commento e nessuna posizione che si apre. qualche suggerimento
bool Long = MAofRSI11>MAofRSI21 && MAofRSI12VolHL && RSIndex1HL2 && TrStop0.0 && SDLL && ma<Close[shift];
bool Short = MAofRSI11=MAofRSI22 && VolCH>VolHL && RSIndex1HLM && TrStop>Close[shift] && MOMClose[shift];bool Long2 = MAofRSI11>HLM && MAofRSI12HLM && MAofRSI22VolHL && TrStop0.0 && SDLL && ma<Close[shift];
bool Short2 = MAofRSI11=HLM && MAofRSI21=HLM && VolCH>VolHL && TrStop>Close[shift] && MOMClose[shift];bool Long3 = RSIndex1-RSIndex2>20<HL2 && TrStop0.0 && SDLL && ma<Close[shift];
bool Short3 = RSIndex2-RSIndex1>20>HL1 && TrStop>Close[shift] && MOMClose[shift];bool Long4 = zscore>0.0 && ma<Close[shift];
bool Short4 = zscoreClose[shift];
buysig = Long || Long2 || Long3 || Long4;
sellsig = Short || Short2 || Short3 || Short4;
closebuy=sellsig;
closesell=buysig;
if (curprof>=AccountBalance()*ProfitExit/100.0) {
exit=true;
}
if (last>0 && (Time[0]-last)/(Period()*60)>=CancelOrderBars) {
remorder=true;
}
}
void CheckForOpen() {
int res,tr;
//---- condizioni di vendita
co=CalculateCurrentOrders(Symbol());
if(sellsig && lastsig!=-1) {
co=CalcolaOrdiniCorrenti(Simbolo());
se (co==0) {
if ( Short == true)
if ( Short2 == true)
if ( Short3 == true)
res = OpenStop(OP_SELLSTOP,LotsRisk(StopLoss), Low[shift]-OrderPipsDiff*Point, StopLoss, TakeProfit1);
Stampa(" Segnale short preso ");
Stampa(" Segnale Short2 preso ");
Stampa(" Segnale Short3 preso ");
Print(" Segnale Short4 preso ");
}
lastsig=-1;
last=Time[0];
ritorno;
}
//---- condizioni di acquisto
if(buysig && lastsig!=1) {
co=CalculateCurrentOrders(Symbol());
if (co==0) {
if ( Long == true)
se ( Long2 == true)
se ( Long3 == true)
se ( Long4 == true)
res = OpenStop(OP_BUYSTOP,LotsRisk(StopLoss), High[shift]+OrderPipsDiff*Point, StopLoss, TakeProfit1);
Stampa(" Segnale Long preso ");
Stampa(" Segnale Long2 preso ");
Stampa(" Segnale Long3 preso ");
Stampa(" Segnale Long4 preso ");
}
last=Time[0];
lastsig=1;
ritorno;
}
}
Risolto Grazie
Debug del codice
Come e dove usereste un po' di codice come questo. Ho un errore di divisione zero che non riesco a trovare come risolvere.
extern bool DEBUGGING = true
...
if(DEBUGGING && variableName == 0) Print("CodePoint 1 -- Questa variabile è ora ", variableName);
... altro codice
if(DEBUGGING && variableName == 0) Print("CodePoint 2 -- Questa variabile è ora ", variableName);
... altro codice
if(DEBUGGING && variableName == 0) Print("CodePoint 3 -- Questa variabile è ora ", variableName);
...
Puoi aiutarmi? Perché ci sono molti errori nel codice?
Questo è per calcolare SMMA:
for(j=0;j<Bars;j++)
{
for(i=0,sum=0;i<ma_periodo;i++)
{
sum=sum+Close[j+i];
// buffer[j]=(somma/somma/ma_periodo+Chiusura[j+i])/ma_periodo;
}
buffer[j]=(somma-somma/ma_periodo+Close[j])/ma_periodo;
}
questo è per calcolare LWMA
for(j=0;j<Bars;j++)
{
for(i=0,sum=0,sum1=0;i<ma_periodo;i++)
{
sum=sum+Close[j+i];
sum1=sum1+Close[j+i]*(j+i);
// buffer[j]=sum/ma_periodo;
}
buffer[j]=sum1/sum;
}
e come calcolare l'EMA?
domanda sugli indicatori
Ciao a tutti.
Sono bloccato su un problema di programmazione. Qualcuno sa come utilizzare il risultato di 1 indicatore per cambiare un'altra impostazione? Per esempio, se la stockasti giornaliera fosse superiore a 20, vorrei una media mobile di (x). Ho provato a far funzionare il codice qui sotto ma senza successo. Non mi sembra di essere in grado di far funzionare lo switch o il comando if else.
doppio fourhrUP;
double daystoch1 = iStochastic(NULL, PERIOD_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN,1);
doppio daystoch20 = 20;
se (daystoch1 > daystoch20) four_hrUP = 5 ;
double iMA( string symbol, int timeframe,four_hrUP, int ma_shift, int ma_method, int applied_price, int shift)
Ciao a tutti.
Sono bloccato su un problema di programmazione. Qualcuno sa come utilizzare il risultato di 1 indicatore per cambiare un'altra impostazione? Per esempio, se lo stockasti giornaliero fosse superiore a 20, vorrei una media mobile di (x). Ho provato a far funzionare il codice qui sotto ma senza successo. Non mi sembra di essere in grado di far funzionare lo switch o il comando if else.
doppio fourhrUP;
double daystoch1 = iStochastic(NULL, PERIOD_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN,1);
doppio daystoch20 = 20;
se (daystoch1 > daystoch20) four_hrUP = 5 ;
double iMA( string symbol, int timeframe,four_hrUP, int ma_shift, int ma_method, int applied_price, int shift)Dov'è la variabile del tuo MA?
Forse questo potrebbe aiutare
double ma4hr=iMA( string symbol, int timeframe,four_hrUP, int ma_shift, int ma_method, int applied_price, int shift);
se il calcolo dello stoch è nello stesso ciclo, diciamo "for(int shift=limit-1; shift>=0; shift--)", il codice stoch dovrebbe essere
double daystoch1 = iStochastic(NULL, PERIOD_D1,5, 3, 3, MODE_SMA, 0, MODE_MAIN,shift+1);
CMIIW
Un piccolo aiuto con un indicatore - Coder's Please Look
Sto testando la piattaforma di un broker MT4 che usa pip frazionari (pipette) nelle sue quotazioni: Per esempio su EURJPY quotano 164.381 invece di 164.38 - Questo significa che lo spread ha un decimale come 4.1 pip (invece di 4).
Qualcuno può dirmi come MODIFICARE il seguente codice in modo che lo spread venga letto correttamente? In questo momento uno spread di 4.1 pip sarebbe letto come 41.0 nell'indicatore. Qualsiasi aiuto è apprezzato.
Dan
//---- spread
Spread=NormalizeDouble((Ask-Bid)/Point,1);
ObjectSetText("Spread Monitor1", "Spread:", 10, "Arial", labelColor);
ObjectSetText("Spread Monitor2",DoubleToStr(Spread,1),10, "Arial", clockColor);