Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 1065

 
evillive:

Se ho capito bene, avete bisogno di una foto dopo 30 tick, non per ognuno dei prossimi 30 tick dopo che la posizione è chiusa?

Non sarebbe allora più facile fare una foto a tempo? Diciamo, dopo 30 secondi dalla chiusura dell'ordine?

La foto ne ha bisogno dopo 30 tick. Il grafico sarà in ticks, quindi sarà di 30 ticks. Ma in ogni caso, dobbiamo lavorare con l'array. Se altri ordini vengono chiusi entro 30 secondi, dovremo contare 30 secondi anche dagli altri ordini.
 
JuliettaRu:
Buon pomeriggio, per favore indirizzatemi dove trovare una spiegazione della mia domanda (presumo di non essere il primo a porla) e cosa fare. Ho installato MT4 sul mio smartphone, ma i grafici mostrano un ritardo di 20 minuti - lo confronto con le letture di MT4 sul PC.
È un graal!
 

Aiutami a capire questo. Non riesco a capire come sistemare questo pezzo di codice... O meglio, cosa dovrei aggiungere perché non imprechi?

il valore di ritorno di 'OrderModify' dovrebbe essere controllato

         }    
         if (OrderOpenPrice()-Ask > Korts*Point*Multi)
         {
           if (OrderStopLoss() > Ask +(Korts)*Point*Multi) 
           {
              OrderModify(OrderTicket(),OrderOpenPrice(),Ask + (TrSt)*Point*Multi,'1', 0, Red);
           }
         }            
      }
   }   
   return(0);
 
Guaro:

Aiutami a capire questo. Non riesco a capire come sistemare questo pezzo di codice... O meglio, cosa dovrei aggiungere perché non imprechi?

il valore di ritorno di 'OrderModify' dovrebbe essere controllato

Il valore restituito dalla funzione OrderModify() deve essere assegnato a una variabile in modo che la funzione possa essere controllata. O semplicemente

if(OrderModify(OrderTicket(),OrderOpenPrice(),Ask + (TrSt)*Point*Multi,'1', 0, Red))
Print("Ордер модифицирован успешно.");
 

Aiuto per risolvere un errore di compilazione: Magic - identificatore non dichiarato

gatto:

bool CheckExists(int Type)
{
bool Result = True;
for(int i = 0; i < OrdersTotal(); i++)
if(OrderSelect(i, SELECT_BY_POS))
if(OrderType() == Type && OrderMagicNumber() == Magic && OrderSymbol() == Symbol())
if(OrderOpenTime() >= Time[0])
Risultato = Falso;
for(i = 0; i < OrdersHistoryTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
if(OrderType() == Type &&& OrderOpenTime() >= Time[0]
&& OrderMagicNumber() == Magic && OrderSymbol() == Symbol())
Result = False;
}

return(Result);
}

 
Abdus_Ali:

Aiuto per risolvere un errore di compilazione: Magic - identificatore non dichiarato

gatto:

Le variabili globali e utente devono essere dichiarate all'inizio del codice, in questo caso si tratta di una variabile utente, scrivetela così:

input int Magic = 1;

 
ticket2=OrderSend( Symbol(),OP_SELL, lot1, Price2, 20, SL2, TP2, NULL, 2,0, clrGreen);
se (Bid>=TP1) // 1(1/0)
{

OrderModify(ticket2,?????, SL2, Price2, 0, clrNONE);

Buona sera mi dica come modificare l'ordine di ticket2? Che prezzo mettere al posto di ?????.....? O devo prima selezionare questo ordine per modificarlo? Anche se in effetti l'ho già selezionato scrivendo nei parametri dell'OrderModify(ticket2,.....

 
bobrush:
ticket2=OrderSend( Symbol(),OP_SELL, lot1, Price2, 20, SL2, TP2, NULL, 2,0, clrGreen);
se (Bid>=TP1) // 1(1/0)
{

OrderModify(ticket2,?????, SL2, Price2, 0, clrNONE);

Buona sera mi dica come modificare l'ordine di ticket2? Che prezzo mettere al posto di ?????.....? O devo prima selezionare questo ordine per modificarlo? Anche se in effetti l'ho già selezionato scrivendo nei parametri dell'OrderModify(ticket2,.....

Mettere OrderOpenPrice()
 
Non riesco a capire perché la ricerca e la chiusura delle posizioni si ferma nel ciclo, ho già girato il ciclo e aumentato il numero di posizioni, nel tester salta (lascia) ancora le posizioni... ditemi se riuscite a vedere dove e cosa c'è di sbagliato...
int positions=PositionsTotal();
       for(int x1=-1;x1<positions;x1++) 
          {
           ulong pos_tiket11=PositionGetTicket(x1);
           if(PositionSelectByTicket(pos_tiket11))
             {
              string comment11=PositionGetString(POSITION_COMMENT);
              Print("ПОЗИЦИЯ ТИКЕТ + "+(string)pos_tiket11+" "+comment11+" ТИП "+(string)PositionGetInteger(POSITION_TYPE));
              if(pos_tiket11!=TIKET11) 
                {
                 ENUM_POSITION_TYPE type11=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
                 if(type11==POSITION_TYPE_BUY)
                   {
                    Print("ПОЗИЦИЯ ВЫБРАНА КОМЕНТ = "+comment11);
                    mytrade111.PositionClose(pos_tiket11,15);
                    TIKKET=0;    
                    dolivka_P1=1;
                   } 
                }
             }
          }
 
ara66676:
Non riesco a capire perché la ricerca delle posizioni e la chiusura si fermano nel ciclo, ho già invertito il ciclo e aumentato il numero di posizioni, ma nel tester salta (lascia) ancora le posizioni.

Dato che la domanda è sul forum di mql4, presumo che il codice sia anche su mql4. O è sbagliato?

In mql4 non ci sono posizioni, ci sono solo ordini.