[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 1079
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
Sembra che qualcosa non funzioni. PER FAVORE AIUTATEMI.
L'idea è questa: se la candela è maggiore di un certo valore, allora proibisci ulteriori scambi.
bool Trade=true;
//---------- inizio()
{.......
if(CalculateCurrentOrders(Symbol())==0 && CheckVolume()==1) CheckForOpen(); //--------open order if (no order is open) AND (candlestick is not bigger than)
if(CalculateCurrentOrders(Symbol())==0 && CheckVolume()==-1) Trade=false; //--------- impostare Tradesu false purché (nessun ordine aperto) E (la candela è maggiore di)
......}
//------- Il commercio è usato nella funzione CheckForOpen().
void CheckForOpen() //------------------- controllare le condizioni e l'ordine di apertura
{int res;
if( Trade && A()==-1 && B()==-1) //------- controllare le condizioni di apertura
{ res=OrderSend(Symbol(),OP_SELL,Lot,Bid,2,Ask+SL*Point,Bid-TP*Point,"",MAGICMA,0,Red); //--------- se la condizione è soddisfatta, l'ordine è aperto
trade=false; } //--------Trade è assegnato un valore di trade-ban. E qui funziona. Se l'ordine si chiude al take order, allora aspetta che arrivino le nuove condizioni definitive, anche se quelle vecchie sono ancora in vigore (prima, il consulente apriva ordini continuamente)
.........}
//-------------------------- controllare l'altezza della candela
int CheckVolume()
{ double volume=High[1]-Low[1]; //-------misurare l'altezza della candela
if (volume <= CandleVolume*Point) return (1); //---------- se la candela è inferiore a
se (volume > CandleVolume*Point) return (-1);//------------se la candela è più di
return(0);}
Ho provato anche la versione, ma non ha funzionato:
void start()
{ .....
if(CalculateCurrentOrders(Symbol())==0 && CheckVolume()==1) CheckForOpen();
.....}
.....
int CheckVolume()
{ double volume=High[1]-Low[1]; //-------misura dell'altezza della candela
if (volume <= CandleVolume*Point) return (1); //---------- se la candela è inferiore a
if (volume > CandleVolume*Point) {Trade=false; return (-1);}//------------se la candela è superiore a
return(0);}
Non c'è modo che funzioni.
Forse dovremmo fare prima un indicatore
Forse dovremmo prima fare un indicatore
Aiutatemi! Come faccio a far apparire una stampa una volta sola, ma ad ogni spunta ho un calo di stampa.
Aiutatemi! Come faccio a far apparire una stampa una volta sola, ma ad ogni spunta ho un calo di stampa.
emette questa stampa quando l'ordine viene aperto.
Ho bisogno di produrre informazioni sugli ordini che sono già stati aperti manualmente o da un altro EA.
Ho bisogno di visualizzare informazioni sugli ordini esistenti che sono già stati aperti manualmente o da un altro EA.
Cos'è questo errore? Se invio una mail di prova dal terminale ottengo un errore
- 2010.12.28 18:23:55 Posta: 530 5.7.0 Deve prima emettere un comando STARTTLS. y1sm3265289fak.15
e non c'è modo di farlo senza?
È possibile, naturalmente, ma l'indicatore rende facile controllare visivamente l'algoritmo
Ho bisogno di visualizzare informazioni sugli ordini esistenti che sono già stati aperti manualmente o da un altro EA.
In alternativa, possiamo fare un contatore di stampe. Dichiariamo una variabile intera. Poi controlliamo se non ci sono ordini, lo impostiamo a zero. Poi controlliamo se la variabile è uguale a zero e ci sono ordini nel mercato, quindi stampiamo i dati degli ordini e incrementiamo questa variabile di 1. Non appena gli ordini vengono chiusi, la variabile sarà di nuovo azzerata. Questo significa che il codice aspetterà che appaia almeno un ordine e mostrerà le informazioni su di esso nel registro.