[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 163
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
Ciao a tutti...
Potresti dirmi come costruire il percorso dei file della cronologia di MetaTrader 4? Come "c:\program files\metatrader 4\history\alpari-classic\"?
Grazie mille, sergeev, credo di averlo trovato...
Print("Terminal path: ", TerminalPath() + "\\history\\" + AccountServer() + "\\");
Questa linea emette il percorso corretto anche se l'editor è sbagliato nei colori... Probabilmente dovreste scrivere il codice in notepad. Stavo solo scherzando.
Buona sera a tutti!
Nel tutorial di Sergey Kovalev ho trovato un esperto - trailing stop. L'ho copiato in MetaEditor, l'ho compilato, ma il programma non funziona. Si prega di consigliare qual è la ragione. Forse sto facendo qualcosa di sbagliato.
è scritto in mql?)
dammi solo il codice.
//-------------------------------------------------------------------- // modifystoploss.mq4 // Progettato per essere usato come esempio nel tutorial MQL4. //-------------------------------------------------------------------- extern int Tral_Stop=10; // Dist. pursuit //--------------------------------------------------------------- 1 -- int start() // Funzione speciale start { string Symb=Symbol(); // Fin. tool //--------------------------------------------------------------- 2 -- for(int i=1; i<=OrdersTotal(); i++) // Order loop { if (OrderSelect(i-1,SELECT_BY_POS)==true) // Se c'è un prossimo { // Analisi ordine: int Tip=OrderType(); // Tipo di ordine if(OrderSymbol()!=Symb||Tip>1)continua;// Non è il nostro ordine double SL=OrderStopLoss(); // SL dell'ordine selezionato //------------------------------------------------------ 3 -- while(true) // Loop di modifica { double TS=Tral_Stop; // Valore iniziale int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// Dist. minima if (TS<Min_Dist) // Se il valore dell'ordine è inferiore a quello consentito, l'ordine verrà eseguito. TS=Min_Dist; // Nuovo valore di TS //--------------------------------------------------- 4 -- bool Modify=false; // Non assegnato alla modifica switch(Tip) // Per tipo di ordine { caso 0 : // Ordine di acquisto if (NormalizeDouble(SL,Digits)< // Se inferiore desiderato. NormalizeDouble(Bid-TS*Point,Digits)) { SL=Bid-TS*Point; // poi modificarlo string Text="Buy "; // testo per Buy Modify=true; // assegnato per modificare } break; // exit if case 1 : // Sell order if (NormalizeDouble(SL,Digits)> // se sopra richiesto. NormalizeDouble(Ask+TS*Point,Digits)|| NormalizeDouble(SL,Digits)==0)//o uguale a zero { SL=Ask+TS*Point; // poi modificarlo Text="Sell "; // Modify=true; // assegnato alla modifica } } // Fine switch if (Modify==false) // se non modifica break; // exit while //--------------------------------------------------- 5 -- double TP =OrderTakeProfit(); // TP dell'ordine selezionato. double Price =OrderOpenPrice(); // Prezzo dell'ordine selezionato. int Ticket=OrderTicket(); // Numero dell'ordine selezionato. Alert ("Modify ",Text,Ticket,". Waiting for reply..."); bool Ans=OrderModify(Ticket,Price,SL,TP,0);//Modifica! //--------------------------------------------------- 6 -- if (Ans==true) // Ha funzionato :) { Alert ("Order ",Text,Ticket," modified:)"); break; // Dal ciclo modificare. } //--------------------------------------------------- 7 -- int Error=GetLastError(); // Ha fallito :( switch(Error) // Supera gli errori { case 130:Alert("Wrong stops. Try again."); RefreshRates(); // Aggiorna i dati continua; // Al prossimo iterazione caso 136:Alert("Nessun prezzo. In attesa di un nuovo tick..."); while(RefreshRates()==false) // Fino al nuovo tick Sleep(1); // Ritardo nel ciclo continue; // Prossima iterazione caso 146:Alert("Il sottosistema di trading è occupato.Riprova"); Sleep(500); // Soluzione semplice RefreshRates(); // Aggiorna i dati continua; // Prossima iterazione // Errori critici caso 2 : Alert("Errore generale."); break; // Esci switch caso 5 : Alert("Versione terminale client vecchio."); break; // Esci switch caso 64 : Alert("Account bloccato."); break; // Exit switch case 133:Alert("Trading prohibited"); break; // Exit switch default: Alert("Error ",Error);//Errore } break; // Fine del ciclo di modifica } // Fine del ciclo di modifica //------------------------------------------------------ 8 -- } // Fine dell'analisi degli ordini //--------------------------------------------------------------- 9 -- return; // Exit start() } //-------------------------------------------------------------- 10 --Buona sera a tutti!
Nel tutorial di Sergey Kovalev ho trovato un esperto - trailing stop. L'ho copiato in MetaEditor, l'ho compilato, ma il programma non funziona. Si prega di consigliare qual è la ragione. Forse sto facendo qualcosa di sbagliato.
Usate questo:
Nelle variabili utente scriviamo:
In EA Start scrivere:
// ----------------------------- Тралим ордера ------------------------------------ TrailingRyn_b(TrailingStop,TrailingStep,Proskalz,MAGIC,WaitProfit,false);Dopo l'inizio nei sottoprogrammi personalizzati scrivere:
Funzioni come ModifError() sono le mie funzioni personalizzate - mostrano solo un messaggio di errore. Scrivete invece i vostri messaggi.
https://docs.mql4.com/ru/indicators/iBands