Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 1133
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
prıvet .podzajajajte pojalusta pogu na demo schete ne mogu otkrıt zdelkı
il commercio è disabilitato .oshıbka
Nessun peccato, che cosa giura.
Quali sono gli errori del compilatore
Qualcosa a che fare con il fatto che la funzione deve essere globale e aspetta le virgole in posti dove non ha senso metterle! Per esempio al separatore tra le informazioni sul broker e la coppia scambiata
Un consiglio per uno stupido. Come posso aprire un conto live?
Cosa vuol dire "nessuno"? Ordina per ticket - ci sarà sempre un ordine e nessuna contraddizione con la documentazione, si parla di ordinare per numero di serie, non per ticket, sono cose diverse.
Abbiamo questo elenco di ordini in un momento (per biglietto)
- Comprare #1
- Comprare #2
- BuyStop #3
- Vendere #4
L'ordine dei biglietti nella lista è: #1,#2,#3,#4Dopo BuyStop #3 in che ordine saranno i biglietti nella lista?
È #1, #2, #4, #3?
Quindi neanche i biglietti garantiscono l'ordine.
Un altro problema che ho incontrato! Non giudicare, ho studiato la lingua per 2-3 settimane, forse sono solo stupida!
Il compito dell'Expert Advisor è quello di notificare al trader via e-mail ogni 4 ore, se il margine libero sul conto ha aggiunto un certo valore.
Nell'oggetto del messaggio devi scrivere il nome del broker e la coppia scambiata, e nel corpo del messaggio "Pericolo! Il drawdown è oltre il limite. Prendete le misure necessarie".
Il compilatore non funziona bene, non sono bravo in inglese e non riesco a capire qual è l'errore!
double Sag;
void OnTick()
{
Sag = NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_FREEMARGIN)/AccountInfoDouble(ACCOUNT_BALANCE)), 1); //находим процент просадки и округляем до 1 знака
if(Sag > MessageMail && iVolume(NULL,PERIOD_H4,0)<3) //если просадка больше заданного и начата новая свеча на 4ч таймфрейме
{
Alert(Symbol(), ": Просадка = ", Sag, " % ", " > ", MessageMail, " % "); //вывести предупреждение в терминале
//Сюда нужно вставить команду SendMail для отправки сообщения, а что и как не понятно
// пробовал bool SendMail( AccountInfoString(ACCOUNT_COMPANY)|Symbol, "Опасность! Просадка привысила допустимое значение. Примите необходимые меры")
//что то не выходит
}
}
PS: Forse in generale c'è una soluzione più semplice per questo tipo di problema, ma finora la vedo solo così)
//| exTestSendMail.mq4 |
//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
input double MessageMail = 50.0;
//---
double Sag=0;
string MailSubject="";
datetime PrevTime=0;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
MailSubject="Mail from EA "+MQLInfoString(MQL_PROGRAM_NAME);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
//--- Находим процент просадки и округляем до 1 знака
Sag=NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_MARGIN_FREE)/AccountInfoDouble(ACCOUNT_BALANCE)),1);
//--- Если открыт новый бар на H4
if(iTime(Symbol(),PERIOD_H4,0) !=PrevTime) {
//--- если просадка больше заданного
if(Sag>MessageMail) {
Alert(Symbol(), ": Просадка = ", DoubleToString(Sag,1), " % ", " > ", MessageMail, " % "); //вывести предупреждение в терминале
string MailText=AccountInfoString(ACCOUNT_COMPANY)+" > Опасность! Просадка ("+DoubleToString(Sag,1)+"%) привысила допустимое значение. Примите необходимые меры.";
SendMail(MailSubject,MailText);
}
PrevTime=iTime(Symbol(),PERIOD_H4,0);
}
}
//+------------------------------------------------------------------+
Grazie! Preparati a inviare lettere!
come fissare ilvalore di ritorno '' OrderClose deve essere controllato??????????????????????????????
Cari programmatori, per favore aiutate un principiante in questo settore.
L'EA apre ordini di acquisto e di vendita in modo sequenziale dopo un certo periodo di tempo. Voglio che modifichi tutti gli ordini precedenti (in particolare, tutti quelli precedenti dovrebbero essere chiusi da Take Profit dell'ultimo. Cioè se l'ultimo ordine di acquisto e il precedente ordine di vendita, allora lo stop loss dell'ordine precedente è impostato al livello di take profit dell'ultimo,
Se l'acquisto precedente compra, allora il suo TakeProfit sarà impostato sul livello dell'ultimo TakeProfit. Bene, ecc. Il punto è che quando arriva il takeprofit dell'ultimo ordine, tutti gli ordini devono essere chiusi).
Spero di averlo spiegato chiaramente, anche se è difficile capire come dovrebbe essere implementato. Grazie in anticipo.
Capisco che possiamo passare attraverso tutti gli ordini aperti e modificarli, ma come possiamo saltare l'ultimo ordine?