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

 
Richie писал(а) >>

Domanda: chi ha questo EA che apre sia ordini di acquisto che di vendita?
O forse sto fraintendendo qualcosa, ma sto ricevendo l'errore 138.
https://www.mql5.com/ru/code/8177


Per cinque cifre, lo slittamento deve essere aumentato
 
Vinin писал(а) >> Per cinque cifre, lo slittamento deve essere aumentato più di tutto


>> Grazie. Ora capisco perché prima funzionava e ora no. Non ci avevo pensato.
 
Per favore, consigliate come mettere in loop l'esecuzione dell'intero programma?
Preferibilmente non un ciclo eterno, ma l'esecuzione del programma un certo numero di volte.
Ecco un semplice esempio -

bool Log=false;

int start()
{


if(Log==false)
int tick=OrderSend("GBPUSD",OP_BUY,0.01,Ask,3,Bid-30*Point,Bid+30*Point);
Log = true;

ritorno;
}

Come posso posizionare l'istruzione del ciclo in modo che quando scatta un ordine stop, la stessa posizione (per esempio) viene aperta immediatamente?
 
non sono necessari, il programma è già in loop per essere chiamato ad ogni tick. Ricorda il biglietto dell'ordine e poi controlla OrderCloseTime() ogni volta. Se non è 0, significa che l'ordine è chiuso. Come esattamente - al take o allo stop - puoi scoprirlo analizzando OrderProfit().
 
alsu >>:
циклов не надо, программа и так зациклена на вызов при каждом тике. Запомните тикет ордера, а потом проверяйте каждый раз OrderCloseTime(). Если оно не 0, значит ордер закрылся. Как именно - по тейку или стопу - можно узнать, проанализировав OrderProfit().

E se lo stop fosse al pareggio, ecc.

 
sanyooooook >>:

а если стоп стоял в безубытке и т.п.?

Se solo i funghi potessero crescere nella tua bocca.

 
alsu >>:

если б да кабы, да во рту росли б грибы.

Non riesci a pensare a qualcosa di più intelligente? Rispondi correttamente alla domanda.

 
Lim1 >>:
Подскажите как зациклить выполнение всей программы?
Желательно не вечный цикл, а выполнение программы определенное количество раз.
Вот простой пример -

bool Log=false;

int start()
{


if(Log==false)
int tick=OrderSend("GBPUSD",OP_BUY,0.01,Ask,3,Bid-30*Point,Bid+30*Point);
Log = true;

return;
}

Как расположить оператор цикла чтобы при срабатывании стоп приказа сразу происходило бы открытие этой же (например) позиции?

Non è molto chiaro, parafrasa.

int start()
{
 for(int i = 0; i < 15; i++){

  bool покупать=false,
       продавать=false;
  string Symbol_="GBPJPY";

  if(iRSI(Symbol_,5,144,0,1)>50)
  покупать=true;
  else
  продавать=true;

  if(покупать)
  int tick=OrderSend(Symbol_,OP_BUY,0.01,Ask,3,Bid-30*Point,Bid+30*Point);
  if(продавать)
  int tick=OrderSend(Symbol_,OP_SELL....................................);
  Sleep(100);//0.1 sec/ ждем 
 }
return(0);
}
 
costy_ >>:

Не совсем понятно, перефразируйте.

Un buon codice aprirà quindici ordini in un secondo e mezzo a seconda delle letture RSI.
È meglio descrivere a parole ciò che si vuole ottenere e non fare riferimento a cicli e tutto il resto. Per esempio, aprire un ordine in base alla lettura dell'RSI, se sarà chiuso dallo stop, aprire immediatamente il successivo, ecc.
 
splxgf >>:
Хороший код, за полторы секунды откроет пятнадцать ордеров в зависимости от показаний RSI.
Лучше описать словами то что хочется получить и не надо ссылаться на циклы и все такое. к примеру открыть один ордер по показаниям RSI, если он будет закрыт по стопу сразу открыть следующий и т.п.

=))

Potete dirmi come fare per mettere in loop l'esecuzione di un intero programma?
Preferibilmente non un ciclo eterno, ma per eseguire il programma un certo numero di volte.
Ecco un semplice esempio -

Non mi dispiace, non mi dispiace.

Sono d'accordo: "Meglio se descritto a parole"!

Motivazione: