No, sulle biciclette non si adatta. Devo fare una correzione dell'ora - la differenza tra i fusi orari di due terminali diversi. È una questione di ore. Cercherò io stesso il glitch.
Aleksander: all'inizio - chiama la funzione per controllare se c'è un ordine di acquisto nel ciclo dell'ordine SellStop... e rimuoverlo - se non c'è un ordine di acquisto tra gli ordini aperti...
Non capisco la frase " L'ordine di acquisto è presente nel ciclo dell'ordine SellStop " .
Il tempo di apertura dell'ordine è il sesto parametro nella linea. È stato letto nella variabile di tipo datetime dai comandi:
Stroka=FileReadString(FileHandle);// Tempo di apertura r_master_OpenTime[i]=StrToTime(Stroka);// Tempo di apertura
Come risultato, abbiamo un Dio sa quale valore nella variabile r_master_OpenTime[i]. Ma appena ho cambiato il suo tipo da datetime a int, tutto è ok. Programmo con mql4 da più di cinque anni, e ancora non riesco a smettere di chiedermi... :)
- Se è un SellStop (ricordate il suo numero magico - è anche un biglietto d'ordine di acquisto {
via
Il bool OrderSelect(
int index, int select, int pool=MODE_TRADES)
controlliamo se l'ordine esiste... - questo è il tuo ordine di acquisto...
se non c'è - allora cancella l'attuale ordine SellStop
}
Fine del ciclo dell'ordine...
Ho scritto questa sciocchezza
int i, k=OrdersTotal();
for (i=0; i<k; i++)
if(OrderType()==OP_SELLSTOP)
if(OrderMagicNumber()==ticket)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
if(OrderType()==OP_BUY)return(-1);
else
OrderDelete(OrderTicket());
Il tempo di apertura dell'ordine è il sesto parametro della stringa. È stato letto nella variabile di tipo datetime dai comandi:
Stroka=FileReadString(FileHandlе);// Время открытия
r_master_OpenTime[i]=StrToTime(Stroka);// Время открытия
Di conseguenza, la variabile r_master_OpenTime[i] conterrebbe un valore non importante. Ma appena ho cambiato il suo tipo da datetime a int, tutto è ok. Programmo con mql4 da più di cinque anni, e ancora non riesco a smettere di chiedermi... :)
Ho provato a scrivere un indicatore, sembra funzionare, ma solo sulla storia che disegna come previsto e poi quando arrivano nuove quotazioni disegna una solita maschera.
Il codice è allegato:
int start() { int counted_bars=IndicatorCounted(); int i,n; double Stark=0; //---- i=Bars-counted_bars-1;//+50; // n=Bars-counted_bars-1; while(i>=0) { //----
all'inizio - chiama la funzione per controllare se c'è un ordine di acquisto nel ciclo dell'ordine SellStop... e rimuoverlo - se non c'è un ordine di acquisto tra gli ordini aperti...
vedere...
Round robin di ordini impostati (inizio)
prendiamo l'ordine
- Se è un SellStop (ricordate il suo numero magico - è anche un biglietto d'ordine di acquisto {
via
controlliamo se l'ordine esiste... - questo è il tuo ordine di acquisto...
Se non c'è, cancelliamo l'attuale ordine SellStop
}
} Fine del ciclo dell'ordine...
InitsializeRealMasterOrders -- cerca un errore qui.
Ed ecco un'altra cosa - non per fare una bicicletta - https://docs.mql4.com/ru/convert/timetostr
Ancora un problema tecnico. Nella subroutine il codice legge i dati dalle righe del documento di testo:
4;NZDUSD;98537467;1;0.5;1340809155;0;0.7881;0;0.7939;0;0
4;NZDUSD;98537450;1;0.5;1340809147;0;0.788;0;0.7939;0.787;0
Il tempo di apertura dell'ordine è il sesto parametro nella linea. È stato letto nella variabile di tipo datetime dai comandi:
Stroka=FileReadString(FileHandle);// Tempo di apertura
r_master_OpenTime[i]=StrToTime(Stroka);// Tempo di apertura
Come risultato, abbiamo un Dio sa quale valore nella variabile r_master_OpenTime[i]. Ma appena ho cambiato il suo tipo da datetime a int, tutto è ok. Programmo con mql4 da più di cinque anni, e ancora non riesco a smettere di chiedermi... :)
vedere...
Round robin di ordini impostati (inizio)
prendiamo l'ordine
- Se è un SellStop (ricordate il suo numero magico - è anche un biglietto d'ordine di acquisto {
via
controlliamo se l'ordine esiste... - questo è il tuo ordine di acquisto...
se non c'è - allora cancella l'attuale ordine SellStop
}
Fine del ciclo dell'ordine...
Ho scritto questa sciocchezza
drknn: Все равно глюк. В подпрограмме код считывает данные из строк текстового документа:
4;NZDUSD;98537467;1;0.5;1340809155;0;0.7881;0;0.7939;0;0
4;NZDUSD;98537450;1;0.5;1340809147;0;0.788;0;0.7939;0.787;0
Il tempo di apertura dell'ordine è il sesto parametro della stringa. È stato letto nella variabile di tipo datetime dai comandi:
Di conseguenza, la variabile r_master_OpenTime[i] conterrebbe un valore non importante. Ma appena ho cambiato il suo tipo da datetime a int, tutto è ok. Programmo con mql4 da più di cinque anni, e ancora non riesco a smettere di chiedermi... :)
Si prega di consigliare cosa fare se:
Nel tester funziona bene, tutto secondo i piani, ma sul realsk non si apre la transazione.
P.S. Ho davvero bisogno di aiuto, è una questione di vita o di morte
Buona giornata a tutti.
Ho provato a scrivere un indicatore, sembra funzionare, ma solo sulla storia che disegna come previsto e poi quando arrivano nuove quotazioni disegna una solita maschera.
Il codice è allegato:
int start()
{
int counted_bars=IndicatorCounted();
int i,n;
double Stark=0;
//----
i=Bars-counted_bars-1;//+50;
// n=Bars-counted_bars-1;
while(i>=0)
{
//----
double Ma=iMA(NULL,0,PerMa,Shift,MODE_EMA,PRICE_CLOSE,i);
//double Ma1=iMA(NULL,0,PerMa,Shift,MODE_EMA,PRICE_CLOSE,i+1);
if(Stark+Step*Point<Ma)Stark=Ma;
if(Stark-Step*Point>Ma)Stark=Ma;
ABuf[i]=Stark;
//----
i--;
}
return(0);
}
Per favore, aiutatemi a sistemarlo in modo che continui a disegnare passi.
Lo apprezzerei molto.
Gek.
{
Price1 =(iClose(Symbol_1,0,0) - iClose(Symbol_1,0,f)) / MarketInfo(Symbol_1, MODE_POINT)
Price2 = K*(iClose(Symbol_2,0,0) - iClose(Symbol_2,0,f)) / MarketInfo(Symbol_2, MODE_POINT);
Spread = Price1 - Price2;
Print ("Price1="+Price1, " Price2="+Price2);
if (Spread==0){t=f; break;}
}
Prezzo12 = (iClose(Symbol_1,0,0) - iClose(Symbol_1,0,t)) / MarketInfo(Symbol_1, MODE_POINT);
Prezzo22 = K*(iClose(Symbol_2,0,0) - iClose(Symbol_2,0,t)) / MarketInfo(Symbol_2, MODE_POINT);
Spread2 = Prezzo12 - Prezzo22;
se (MathAbs(Spread2) >= razdvizka && Spread2 < 0) { aprire il trade }
Voglio fissare la barra in cui lo spread era uguale a zero e controllare lo spread da essa