Veuillez me donner un indice, car je n'ai jamais demandé l'aide d'un programmeur auparavant. - page 6

 
Serqey Nikitin:

Tu ne comprends pas... Personne ne va corriger les citations...

Les règles n'interdisent pas les "retards" dans l'exécution des ordres... et la diffusion s'élargit...

Je comprends votre point de vue. Vous m'avez probablement mal compris. Ce que je voulais dire, c'est qu'il y a des limites à tout. L'écart ne s'élargira pas 10 fois pour chaque ordre ouvert. Le délai ne sera pas multiplié par plusieurs fois.

Et pour être honnête, je ne suis pas venu ici pour me vanter. Si l'idée ne fonctionne pas, je serai dans la majorité, c'est la norme.
 
Serqey Nikitin:

Tu ne comprends pas... Personne ne va corriger les citations...

Les règles n'interdisent pas les "retards" dans l'exécution des ordres... et la diffusion s'élargit...

Je suis désolé que vous ayez perdu autant de temps sur une idée inutile..., et seulement parce que vous êtes tombé dans les annonces de scalp....
 
Serqey Nikitin:
Je suis désolé que vous ayez perdu autant de temps sur une idée inutile..., et seulement parce que vous êtes tombé dans les annonces de scalp...

C'est la fin de notre dialogue avec vous. Je ne veux pas être indiscret et fouiller dans les spéculations des autres.

 
Aleksandr2233:

C'est la fin de notre dialogue avec vous. Je ne veux pas être indiscret et fouiller dans les spéculations des autres.

Utilise ta tête... parfois ça aide si tu ne reçois pas les bons conseils...
 

Le conseiller expert définit le Stop Loss et le Take Profit pour les ordres en attente, s'il n'y en a pas. Et supprime les ordres en attente si la distance entre l'ordre en attente et le prix dépasse la distance entre l'ordre en attente et le 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());
            }            
         }
      }
   }

n'a pas testé

 
Aleksei Stepanenko:

Le conseiller expert définit le Stop Loss et le Take Profit pour les ordres en attente, s'il n'y en a pas. Et supprime les ordres en attente si la distance entre l'ordre en attente et le prix dépasse la distance entre l'ordre en attente et le stop.

n'ont pas été testés

Je le vérifierai plus tard. Merci. Plus susceptibles de vous répondre dans un message privé.

 
Serqey Nikitin:
Tournez la tête..., parfois ça aide si vous ne recevez pas les bons conseils...

Merci pour le conseil.

 
Aleksei Stepanenko:

Le conseiller expert définit le Stop Loss et le Take Profit pour les ordres en attente, s'il n'y en a pas. Et supprime les ordres en attente si la distance entre l'ordre en attente et le prix dépasse la distance entre l'ordre en attente et le stop.

n'ont pas été testés

Cependant, je ne sais pas quoi faire avec le code pour obtenir un fichier ex4 prêt à l'emploi. Je sais qu'il existe un programme MetaEditor, mais je ne l'ai ouvert qu'une fois.

 
mettez-le dans le dossier \MQL4\Indicators et redémarrez le terminal
Dossiers :
 
Aleksei Stepanenko:
mettez-le dans le dossier \MQL4\Indicators et redémarrez le terminal

et le dossier que je comprends est un expert

Un instantané de l'ee