[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 737

 
trader265:
Ragazzi, grazie mille a tutti. Me ne occuperò subito. Se non funziona, posso disturbarti?

Anche se oggi non c'è nessuno, il tuo post sarà visto domani. Non è che abbiamo un ufficio qui :) dove tutti se ne vanno alla fine della giornata :)
 
drknn:


La logica è la seguente:

Il limite di 8 buffer di indicatori è dovuto al linguaggio stesso. Non ha senso limitare il numero di altri array, perché non può comunque superare la dimensione della RAM + il file di swap. Pertanto, non vale la pena di esagerare. Voglio dire che una certa quantità di memoria è allocata per l'array.

Ecco il mio problema:'SymbolSellColor' - stack overflow interno - semplificare il programma, per favore

Aumentare lo stack non aiuta. Il codice è semplice, non sono bravo a scrivere complesso. RAM, swap - non è un problema, è sufficiente.

 
Abzasc:

Ecco il mio problema: 'SymbolSellColor' - stack overflow interno - semplificare il programma, per favore

Stack overflow - non aiuta. Il codice è semplice, non sono bravo a scrivere complesso. RAM, swap - non è un problema, è sufficiente.


Chiedete agli sviluppatori - forse ci sono dei problemi che non conosciamo.
 

Ho una domanda sul perché un ordine in sospeso non si apre, per favore aiutatemi.

extern int TakeProfit=100;
extern int StopLoss=100;
extern double Lot=0.01;
extern int StartTime=0;
int Today=0;
int h=100;
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
{if(DayOfWeek()==0 || DayOfWeek()==6) return(0); // в выходные не работаем
if(!IsTradeAllowed()) return(0); // пропустим тик если терминал занят
int total = OrdersTotal();
if(total == 0)

   {NewOrder(OP_BUY,Lot);
    NewOrder(OP_SELL,Lot);
    NewOrder(OP_BUYLIMIT,Lot);
    Today=TimeDay(TimeCurrent());}
return(0);}

  
//+------------------------------------------------------------------+
int NewOrder(int Cmd,double Lot)
{double TP=0; //тейкпрофит
double SL=0; //стоплосс
double PR=0; //Цена
double PR1=0; //Цена1
while(!IsTradeAllowed()) Sleep(100);
if(Cmd==OP_BUY)
   {PR=Ask;
    if(TakeProfit>0) TP=Ask+TakeProfit*Point;
    if(StopLoss>0) SL=Ask-StopLoss*Point;}
if(Cmd==OP_SELL)
   {PR=Bid;
    if(TakeProfit>0) TP=Bid-TakeProfit*Point;
    if(StopLoss>0) SL=Bid+StopLoss*Point;}
if(Cmd==OP_BUYLIMIT)
   {PR1=Ask-Point*h;
    if(TakeProfit>0) TP=PR+TakeProfit*Point;
    if(StopLoss>0) SL=PR-StopLoss*Point;}
int tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,0,0,CLR_NONE);
int tic1=OrderSend(Symbol(),Cmd,Lot,PR1,3,SL,TP,0,0,CLR_NONE);
if(tic<0) Print(GetLastError());
if(tic1<0) Print(GetLastError());
return(tic);}
 
FoxUA:

domanda qual è l'errore per cui un ordine in sospeso non si apre aiuto per favore

Riconosco i miei commenti nel tuo codice :))))))))))

Controllate cosa esattamente passate alla funzione come parametro e cosa esattamente ottiene la funzione quando viene eseguita - stampatelo.

 
drknn:
Riconosco i miei commenti nel tuo codice :))))))))))

Controllate esattamente cosa passate alla funzione come parametro ed esattamente cosa ottiene la funzione quando viene eseguita - stampatelo.


Sto raccogliendo il costruttore Lego da circa 3 ore e l'ordine in sospeso non vuole aprirsi.
 
drknn:
Riconosco i miei commenti nel tuo codice :))))))))))

Controllate esattamente cosa passate alla funzione come parametro ed esattamente cosa ottiene la funzione quando viene eseguita - stampatelo.


Vedo come fare la prossima funzione

int tic=OrderSend(Symbol(),Cmd,Lot,PR,3,SL,TP,0,0,CLR_NONE);


dopo questa funzione

int NewOrder1(int Cmd,double Lot)
{double TP=0; //тейкпрофит
double SL=0; //стоплосс
double PR1=0; //Цена1
while(!IsTradeAllowed()) Sleep(100);

if(Cmd==OP_BUYLIMIT)
   {PR1=Ask-Point*h;
    if(TakeProfit>0) TP=PR1+TakeProfit*Point;
    if(StopLoss>0) SL=PR1-StopLoss*Point;}

int tic1=OrderSend(Symbol(),Cmd,Lot,PR1,3,SL,TP,0,0,CLR_NONE);

if(tic1<0) Print(GetLastError());
return(tic1);}
 

Ho capito, devi solo impostare l'operatore non solo un parametro, ma attraverso altro

 

Domanda, quale funzione è responsabile della data di scadenza di un ordine pendente? Non la vedo e dice 147 L'utilizzo della data di scadenza non è permesso dal broker

 

expiration - data di scadenza dell'ordine in sospeso. Quando arriva il tempo di scadenza, l'ordine pendente sarà automaticamente chiuso sul server di trading. Su alcuni server commerciali l'applicazione del tempo di scadenza degli ordini pendenti può essere proibita. In questo caso, quando si cerca di impostare un valore non zero del parametro, l'ordine di compravendita sarà rifiutato.

Quale valore dovrebbe essere impostato in modo che l'ordine non venga rifiutato?

Motivazione: