Ecco il mio codice EA: dove voglio inserire la funzione Breakeven?
extern int tp = 0;
extern int sl = 0;
extern int BeginHour = 0;// ora di inizio
extern inttern EndHour = 0;// tempo di fine
int start()
{
//----
if(OrdersTotal()==0 && Hour() >= BeginHour && Hour() < EndHour && Close[1]<Open[1] && High[1]<Bid)// controlla se il prezzo della barra precedente è inferiore a quello aperto. Ordine di acquisto quando il prezzo di raggiunge il prezzo Bid della barra corrente, il livello alto della barra precedente.
if(OrdersTotal()==0 && Hour() >= BeginHour && Hour() < EndHour && Close[1]>Open[1] && Low[1]>Bid)// controlla se l'ordine è aperto e il prezzo di chiusura della barra precedente è inferiore al prezzo aperto. Ordine di acquisto quando il prezzo raggiunge il prezzo della barra corrente Bid, livello alto della barra precedente.
Ho provato a rifare la funzione di qualcun altro, e "un po'" ho fatto casino, ecco un pezzo di codice:
string FileName = test.txt;
int FileHandle=FileOpen(FileName,FILE_READ);
if (FileHandle < 0)
{
Print("Файл не найден.");
}
string strInfo;
int i;
if (FileHandle>0)
{
while (i<20)
{
if (FileHandle == 1)
{
string strInfo1=FileReadString(FileHandle);
}else{
if (FileHandle == 2)
{
string strInfo2=FileReadString(FileHandle);
}else{
if (FileHandle == 3)
{
string strInfo3=FileReadString(FileHandle);
}else{
if (FileHandle == 4)
{
string strInfo4=FileReadString(FileHandle);
}else{
if (FileHandle == 5)
{
string strInfo5=FileReadString(FileHandle);
}else{
if (FileHandle == 6)
{
string strInfo6=FileReadString(FileHandle);
}else{
if (FileHandle == 7)
{
string strInfo7=FileReadString(FileHandle);
}else{
if (FileHandle == 8)
{
string strInfo8=FileReadString(FileHandle);
}else{
if (FileHandle == 9)
{
string strInfo9=FileReadString(FileHandle);
}else{
if (FileHandle == 10)
{
string strInfo10=FileReadString(FileHandle);
}else{
Print("Ошибка! В файле должно быть не более 10 записей!");
}
}
}
}
}
}
}
}
}
}
if (StrToInteger(strInfo1)==12345||StrToInteger(strInfo2)==12345||
StrToInteger(strInfo3)==12345||StrToInteger(strInfo4)==12345||
StrToInteger(strInfo5)==12345||StrToInteger(strInfo6)==12345||
StrToInteger(strInfo7)==12345||StrToInteger(strInfo8)==12345||
StrToInteger(strInfo9)==12345||StrToInteger(strInfo10)==12345)
{
isNumInFile = TRUE;
}
if (FileIsEnding(FileHandle) && isNumInFile == FALSE)
{
Print("Достигнут конец файла, искомое значение не найдено");
break;
}
i++;
if (i>100) break;
}
FileClose(FileHandle);
}
Volevo che trovasse un certo valore nelle prime 10 linee del file test.txt e se il numero di linee è più di 10 darà errore "Error! Non ci dovrebbero essere più di 10 record nel file!", ma per qualche motivo continua a passare attraverso tutti i record, per favore aiutatemi a sistemarlo, e se potete semplificare il codice e renderlo una funzione separata.
Gente, per favore, spiegate in forma semplice cos'è il trasferimento di parametri per riferimento. Ho letto la documentazione, ma ho capito solo che è possibile e che dopo l'identificazione della variabile è obbligatorio mettere il modificatore &. Sarebbe bello se la spiegazione fosse accompagnata da un piccolo programma con spiegazioni... Qual è la differenza tra il solito passaggio di parametri e il passaggio di parametri per riferimento?
vedere qui: https://www.mql5.com/ru/forum/135030
Per favore, ditemi come scrivere un comando semplice:
- pertrasferire un ordine in una posizione senza perdite per un dato numero di pip
Potete per favore dirmi come scrivere un semplice comando:
- Impostare in un ordine aperto, stoploss a pareggio (considerando lo spread) ad una certa quantità di profitto nel commercio.
ecco una funzione per convertire tutti gli ordini con lo stesso numero magico in b/n, provate a sperimentarla
IgorM
Ecco il mio codice EA: dove voglio inserire la funzione Breakeven?
extern int tp = 0;
extern int sl = 0;
extern int BeginHour = 0; // ora di inizio
extern inttern EndHour = 0; // tempo di fine
int start()
{
//----
if(OrdersTotal()==0 && Hour() >= BeginHour && Hour() < EndHour && Close[1]<Open[1] && High[1]<Bid) // controlla se il prezzo della barra precedente è inferiore a quello aperto. Ordine di acquisto quando il prezzo di raggiunge il prezzo Bid della barra corrente, il livello alto della barra precedente.
OrderSend(Symbol(),OP_BUY,1,Ask,0,Ask-sl*Point,Ask+tp*Point,"",777,0,Red);
if(OrdersTotal()==0 && Hour() >= BeginHour && Hour() < EndHour && Close[1]>Open[1] && Low[1]>Bid) // controlla se l'ordine è aperto e il prezzo di chiusura della barra precedente è inferiore al prezzo aperto. Ordine di acquisto quando il prezzo raggiunge il prezzo della barra corrente Bid , livello alto della barra precedente.
OrderSend(Symbol(),OP_SELL,1,Bid,0,Ask+sl*Point,Ask-tp*Point,"",777,0,Red);
//----
ritorno(0);
}
Ecco il mio codice EA: dove devo mettere la funzione Breakeven?
Penso che a questo punto sia sufficiente aggiungere la mia funzione alla fine del tuo codice e fare almeno quanto segue nel tuo codice:
if(OrdersTotal()>0) MovingInWL(777);
Aggiungete all'inizio del vostro codice
extern int LevelWLoss = 100; // Livello di pareggio in pip
extern int LevelProfit = 300; // Livello di profitto in pip
Ho dei dubbi che tu possa risolvere questo problema da solo :)
È possibile. È anche possibile gestire un account da un computer impostato al lavoro, o viceversa, quando si è a casa.
Ho provato a rifare la funzione di qualcun altro, e "un po'" ho fatto casino, ecco un pezzo di codice:
string FileName = test.txt; int FileHandle=FileOpen(FileName,FILE_READ); if (FileHandle < 0) { Print("Файл не найден."); } string strInfo; int i; if (FileHandle>0) { while (i<20) { if (FileHandle == 1) { string strInfo1=FileReadString(FileHandle); }else{ if (FileHandle == 2) { string strInfo2=FileReadString(FileHandle); }else{ if (FileHandle == 3) { string strInfo3=FileReadString(FileHandle); }else{ if (FileHandle == 4) { string strInfo4=FileReadString(FileHandle); }else{ if (FileHandle == 5) { string strInfo5=FileReadString(FileHandle); }else{ if (FileHandle == 6) { string strInfo6=FileReadString(FileHandle); }else{ if (FileHandle == 7) { string strInfo7=FileReadString(FileHandle); }else{ if (FileHandle == 8) { string strInfo8=FileReadString(FileHandle); }else{ if (FileHandle == 9) { string strInfo9=FileReadString(FileHandle); }else{ if (FileHandle == 10) { string strInfo10=FileReadString(FileHandle); }else{ Print("Ошибка! В файле должно быть не более 10 записей!"); } } } } } } } } } } if (StrToInteger(strInfo1)==12345||StrToInteger(strInfo2)==12345|| StrToInteger(strInfo3)==12345||StrToInteger(strInfo4)==12345|| StrToInteger(strInfo5)==12345||StrToInteger(strInfo6)==12345|| StrToInteger(strInfo7)==12345||StrToInteger(strInfo8)==12345|| StrToInteger(strInfo9)==12345||StrToInteger(strInfo10)==12345) { isNumInFile = TRUE; } if (FileIsEnding(FileHandle) && isNumInFile == FALSE) { Print("Достигнут конец файла, искомое значение не найдено"); break; } i++; if (i>100) break; } FileClose(FileHandle); }Volevo che trovasse un certo valore nelle prime 10 linee del file test.txt e se il numero di linee è più di 10 darà errore "Error! Non ci dovrebbero essere più di 10 record nel file!", ma per qualche motivo continua a passare attraverso tutti i record, per favore aiutatemi a sistemarlo, e se potete semplificare il codice e renderlo una funzione separata.
Gente, per favore, spiegate in forma semplice cos'è il trasferimento di parametri per riferimento. Ho letto la documentazione, ma ho capito solo che è possibile e che dopo l'identificazione della variabile è obbligatorio mettere il modificatore &. Sarebbe bello se la spiegazione fosse accompagnata da un piccolo programma con spiegazioni... Qual è la differenza tra il solito passaggio di parametri e il passaggio di parametri per riferimento?