[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 65

 
Vinin:

Lo farò a modo mio e il conto alla rovescia sarà diverso. Vado sempre dal passato al presente. È una questione di gusti, però. Non ha molta importanza con il giusto approccio.

Salve,

Per favore, aiutatemi con la pagina. (Post 56, 58 pagine).

 
Roger:


Probabilmente troppo veloce, avresti dovuto studiare un po'. :-)

Allora sapresti che compri alla domanda e vendi all'offerta. Se li vendessimo, il loro prezzo sarebbe inferiore a quello dell'offerta.


No, è proprio il contrario di quello che hai scritto. Certo, grazie per l'attenzione. Ci ho pensato molto, ho capito questo e quello, e ti sbagli.

In generale, vedo che il problema non è negli Aks e Bids, e non l'ho risolto.

 
Dimka-novitsek:

Mi dispiace, anch'io sono con la mia, qui ho appena sgorgato il codice e non funziona.

//+------------------------------------------------------------------+
//| tipo di ordine.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp.
#proprietà link "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'esperto |
//+------------------------------------------------------------------+
int init()
{
//----

//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di deinizializzazione esperto |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di inizio esperto |
//+------------------------------------------------------------------+
doppio New_Time=0,razniza, r; int i=0,h=0,q=0,w=0,s=0,g=0;
int start()
{int M,Y;
//----
double ticket,Lots=0.2,fractal_u=Ask,TakeProfit=50,Points = MarketInfo (Symbol(), MODE_POINT);
//----
se (i<10)
{
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,fractal_u+5*Points,3,0,fractal_u+5*Points+TakeProfit*Points,
"aprire una posizione",163899,0,Red); if (New_Time==0){ New_Time = Time[0];} Alert("New_Time",New_Time);i++; }
Alert("OrderTypeOP_BUYSTOP",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket,Lots,Bid,5, 0 );



se (h<10)
{
ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots,fractal_u-5*Points,3,0,fractal_u-5*Points+TakeProfit*Points,
"aprire una posizione",163899,0,Red); if (New_Time==0){ New_Time = Time[0];} Alert("New_Time",New_Time);h++; }
Alert("OrderTypeOP_SELLSTOP",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket,Lots,Ask,5, 0 );

se (q<10)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Bid,3,0,5*Points+TakeProfit*Points,
"aprire una posizione",163899,0,Red); if (New_Time==0){ New_Time = Time[0];} Alert("New_Time",New_Time); q++; }
Alert("OrderTypeOP_BUY",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket,Lots,Bid,5, 0 );

se (w<10)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Ask,3,0,5*Points+TakeProfit*Points,
"aprire una posizione",163899,0,Red); if (New_Time==0){ New_Time = Time[0];} Alert("New_Time",New_Time);w++; }
Alert("OrderTypeOP_SELL",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket,Lots,Ask,5, 0 );

se (s<10)
{
ticket=OrderSend(Symbol(),OP_BUYLIMIT,Lots,fractal_u-5*Points,3,0,fractal_u-5*Points+TakeProfit*Points,
"aprire una posizione",163899,0,Red); if (New_Time==0){ New_Time = Time[0];} Alert("New_Time",New_Time); s++; }
Alert("OrderTypeOP_BUYLIMIT",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket,Lots,Ask,5, 0 );

se (g<10)
{
ticket=OrderSend(Symbol(),OP_SELLLIMIT,Lots,fractal_u+5*Points,3,0,fractal_u+5*Points+TakeProfit*Points,
"aprire una posizione",163899,0,Red); if (New_Time==0){ New_Time = Time[0];} Alert("New_Time",New_Time);g++; }
Alert ("OrderTypeOP_SELLLIMIT",OrderType());OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES );
OrderClose( ticket, Lots, Bid, 5, 0 );






//----
ritorno(0);
}
//+------------------------------------------------------------------+

L'ho fatto abbastanza velocemente, l'ho impostato con lo scopo di ottenere un valore numerico del tipo di ordine, apre e chiude tutti gli ordini in una riga, intendo tutti i tipi. Ho controllato OrderClose con l'istruzione, i parametri sembrano essere prescritti ragionevolmente, correttamente e al loro posto. Di cos'altro ha bisogno?????

 

Alert("Current time day", iTime(NULL,PERIOD_D1,5));

questo mi dà 0, aggiunto:

Alert("",GetLastError());

dà un errore 4054

ERR_INCORRECT_SERIESARRAY_USING4054Uso scorretto dell'array di serie temporali

Cosa sto facendo di sbagliato?


 

Per favore, aiutatemi. Il codice dovrebbe cancellare tutti gli ordini a mercato su tutte le coppie, ma in pratica cancella solo quelli sulla finestra in cui viene lanciato l'EA. Per favore aiutatemi a trovare l'errore.


void CloseAll_b(int Prosk){
stringa SMB=Simbolo();
for (int i=OrdersTotal()-1;i>=0;i--){
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
Alert("Errore ",GetLastError()," quando il numero dell'ordine è selezionato ",OrderTicket()," per coppia ",Symbol());
}
else{
if(OrderSymbol()!=Symbol()){continua;}
RefreshRates();
se(OrderType()==OP_BUY){
if(!OrderClose(OrderTicket(),OrderLots(),Bid,Prosk,CLR_NONE)){
Alert("Error ",GetLastError(),",OrderTicket(),",Symbol()) alla chiusura dell'ordine di acquisto;
}
}
se(OrderType()==OP_SELL){
if(!OrderClose(OrderTicket(),OrderLots(),Ask,Prosk,CLR_NONE)){
Alert("Errore ",GetLastError(),{ quando Sell order number is closed ",OrderTicket(),{ by pair ",Symbol());
} } } } }

Grazie in anticipo.

 
nemo811:

Per favore, aiutatemi. Il codice dovrebbe cancellare tutti gli ordini a mercato su tutte le coppie, ma in pratica cancella solo quelli sulla finestra in cui viene lanciato l'EA. Per favore aiutatemi a trovare l'errore.


ma tu stesso hai impostato il vincolo :))

if(OrderSymbol()!=Symbol()){continua;}

 
sergeev:

ma tu stesso hai impostato il vincolo :))

if(OrderSymbol()!=Symbol()){continua;}


Sono d'accordo - stupido :)) Come dovrebbe essere?
 
nemo811:

Sono d'accordo - stupido :))) Qual è il modo giusto?
... Devi solo rimuoverlo, non vuoi estirpare le valute. Quindi dobbiamo rimuovere questa condizione.
 
L'ho rimosso, ma gli ordini di altre coppie non sono ancora chiusi. L'errore 129 (prezzo sbagliato) ha iniziato a comparire
 
nemo811:
L'ho rimosso, ma i miei ordini per altre coppie non si chiudono comunque. L'errore 129 (prezzo sbagliato) continua ad apparire

a destra salta fuori.

Devi prendere Bid e Ask dalla funzione MarketInfo

come - ask= MarketInfo(OrderSymbol(), MODE_ASK);

e non dimenticare di normalizzare
ask=NormalizeDouble(ask, MarketInfo(OrderSymbol(), MODE_DIGITS))