Per favore, datemi un suggerimento, perché non ho mai chiesto aiuto a un programmatore prima d'ora - pagina 6

 
Serqey Nikitin:

Lei fraintende... Nessuno ha intenzione di FISSARE le citazioni...

Non c'è nessun divieto nelle regole contro i "ritardi" nell'esecuzione degli ordini... e la diffusione si allarga...

Capisco il tuo punto di vista. Probabilmente mi hai frainteso. Quello che volevo dire è che ci sono limiti a tutto. Lo spread non si allarga di 10 volte per ogni ordine aperto. Il ritardo non sarà aumentato di diverse volte.

E ad essere onesti, non sono venuto qui per vantarmi. Se l'idea non funziona, sarò nella maggioranza, questa è la norma.
 
Serqey Nikitin:

Tu non capisci... Nessuno ha intenzione di FISSARE le citazioni...

Non c'è nessun divieto nelle regole contro i "ritardi" nell'esecuzione degli ordini... e la diffusione si allarga...

Mi dispiace che tu abbia perso così tanto tempo per un'idea inutile..., e solo perché sei caduto per gli annunci di scalping...
 
Serqey Nikitin:
Mi dispiace che tu abbia perso così tanto tempo per un'idea inutile..., e solo perché sei caduto per gli annunci di scalping...

Questa è la fine del nostro dialogo con voi. Non voglio impicciarmi e scavare nelle speculazioni degli altri.

 
Aleksandr2233:

Questa è la fine del nostro dialogo con voi. Non voglio impicciarmi e scavare nelle speculazioni degli altri.

Usa la tua testa... a volte aiuta se non ti danno il consiglio giusto...
 

L'Expert Advisor imposta Stop Loss e Take Profit agli ordini in sospeso, se non ce ne sono. E cancella gli ordini pendenti se la distanza dall'ordine pendente al prezzo supera la distanza dall'ordine pendente allo stop.

#property version   "2.00"
#property strict

input int StopLoss=300;
input int TakeProfit=500;

double loss, profit;
bool result;

string symbol;
double point;
int digits;
 
MqlTick tick;


int OnInit()
   {
   symbol=Symbol();
   point=SymbolInfoDouble(symbol,SYMBOL_POINT);
   digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
   return(INIT_SUCCEEDED);
   }

void OnDeinit(const int reason)
   {
   
   }

void OnTick()
   {
   SymbolInfoTick(symbol,tick);
   for(int i=OrdersTotal()-1; i>=0; i--)
      {
      if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()!=symbol && OrderClosePrice()!=0) continue;
      if(OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLSTOP)
         {
         //устанавливаем стоплосс и тейкпрофит
         if((OrderStopLoss()==0 && StopLoss>0) || (OrderTakeProfit()==0 && TakeProfit>0))
            {
            loss=(StopLoss>0)?NormalizeDouble(tick.ask-MathMax(StopLoss,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point,digits):0;
            profit=(TakeProfit>0)?NormalizeDouble(MathMax(TakeProfit,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point-tick.bid,digits):0;
            result=OrderModify(OrderTicket(),OrderOpenPrice(),loss,profit,0);
            }
         //удаляем ордер
         if(OrderStopLoss()>0 && tick.ask-OrderOpenPrice()>OrderOpenPrice()-OrderStopLoss())
            {
            result=OrderDelete(OrderTicket());
            }            
         }
      if(OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYSTOP)
         {
         //устанавливаем стоплосс и тейкпрофит
         if((OrderStopLoss()==0 && StopLoss>0) || (OrderTakeProfit()==0 && TakeProfit>0))
            {
            loss=(StopLoss>0)?NormalizeDouble(MathMax(StopLoss,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point-tick.bid,digits):0;
            profit=(TakeProfit>0)?NormalizeDouble(tick.ask-MathMax(TakeProfit,(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL))*point,digits):0;
            result=OrderModify(OrderTicket(),OrderOpenPrice(),loss,profit,0);
            }
         //удаляем ордер
         if(OrderStopLoss()>0 && OrderOpenPrice()-tick.bid>OrderStopLoss()-OrderOpenPrice())
            {
            result=OrderDelete(OrderTicket());
            }            
         }
      }
   }

non ha testato

 
Aleksei Stepanenko:

L'Expert Advisor imposta Stop Loss e Take Profit agli ordini in sospeso, se non ce ne sono. E cancella gli ordini pendenti se la distanza dall'ordine pendente al prezzo supera la distanza dall'ordine pendente allo stop.

non hanno testato

Lo controllerò più tardi. Grazie. È più probabile che ti risponda in un messaggio privato.

 
Serqey Nikitin:
Gira la testa..., a volte aiuta se non ti danno il consiglio giusto...

Grazie per il consiglio.

 
Aleksei Stepanenko:

L'Expert Advisor imposta Stop Loss e Take Profit agli ordini in sospeso, se non ce ne sono. E cancella gli ordini pendenti se la distanza dall'ordine pendente al prezzo supera la distanza dall'ordine pendente allo stop.

non hanno testato

Tuttavia, non so cosa fare con il codice per ottenere un file ex4 pronto. So che esiste un programma MetaEditor, ma l'ho aperto solo una volta.

 
metterlo nella cartella \MQL4\Indicators e riavviare il terminale
File:
 
Aleksei Stepanenko:
metterlo nella cartella \MQL4\Indicators e riavviare il terminale

e il file che capisco è un esperto

Un'istantanea dell'ee