AddTrail

 
check all manual orders with trailingstop. help will be appreciataed..Thanks

input bool UseTrailingstop=true;

{Trail(Trailingstop,MinProfit,Trailstep);

for(int x=0;x<=OrdersTotal()-1;x++)

{bool r=OrderSelect(x,SELECT_BY_POS);

intMagicNumber=OrdermagicNumber();

orderType=OrderType();

if(magicNumber=MagicNumber()

&&OrderType==OP_BUY ||OP_SELL

{ Trailingstop(OrderTicket(), Trail,,Profit, Trailstep)}
 
input int Distance=300;
input int History=3;
input int MagicNumber=123;

void OnTick()
   {
   for(int i=OrdersTotal()-1; i>=0; i--) DoTrailOrder(i,MagicNumber,Distance,History,Symbol(),0);
   }

//трейлинг рыночных ордеров, стоплосс держится на расстоянии Distance от самой экстремальной тени из последних History баров 
int DoTrailOrder(int ePosition, int eMagicNumber, int eDistance, int eHistory, string eSymbol, int eTimeFrame)
   {
   if(!OrderSelect(ePosition,SELECT_BY_POS,MODE_TRADES)) return(1);
   int eType=OrderType();
   if(eType!=OP_BUY && eType!=OP_SELL) return(0);
   if(OrderMagicNumber()!=eMagicNumber) return(0);
   if(OrderSymbol()!=eSymbol) return(0);
   //наблюдаем начиная с бара следующим за баром открытия
   if(iBarShift(eSymbol,eTimeFrame,OrderOpenTime())==0) return(0);
   int eDigits=(int)MarketInfo(eSymbol,MODE_DIGITS);
   double ePoint=MarketInfo(eSymbol,MODE_POINT);
   double eSpread=MarketInfo(eSymbol,MODE_SPREAD);
   double eExtremum;
   if(eType==OP_BUY)
      {
      //стоп устанавливается на расстоянии eDistance от самой низкой тени бара из истории eHistory
      eExtremum=iLow(eSymbol,eTimeFrame,iLowest(eSymbol,eTimeFrame,MODE_LOW,eHistory,1));
      //расстояние от минимума до StopLoss должно превысить TrailingLevel
      if(NormalizeDouble(eExtremum-OrderStopLoss(),eDigits)<=eDistance*ePoint) return(0);
      //расстояние от минимума до цены открытия должно превысить TrailingLevel
      if(NormalizeDouble(eExtremum-OrderOpenPrice(),eDigits)<=eDistance*ePoint) return(0);
      //новый стоп должен быть не ближе к текущей цене, чем на два спреда
      if(NormalizeDouble(MarketInfo(eSymbol,MODE_BID)+eDistance*ePoint-eExtremum,eDigits)<=2*eSpread*ePoint) return(0);
      if(!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(eExtremum-eDistance*ePoint,eDigits),OrderTakeProfit(),OrderExpiration(),clrBlue)) return(-1);
      }
   if(eType==OP_SELL)
      {
      //стоп устанавливается на расстоянии eDistance от самой высокой тени бара из истории eHistory
      eExtremum=iHigh(eSymbol,eTimeFrame,iHighest(eSymbol,eTimeFrame,MODE_HIGH,eHistory,1));
      if(NormalizeDouble(OrderStopLoss()-eExtremum,eDigits)<=(eDistance+eSpread)*ePoint && OrderStopLoss()!=0) return(0);
      if(NormalizeDouble(OrderOpenPrice()-eExtremum,eDigits)<=(eDistance+eSpread)*ePoint) return(0);
      //один спред между Ask и Bid сократился
      if(NormalizeDouble(eExtremum+eDistance*ePoint-MarketInfo(eSymbol,MODE_ASK),eDigits)<=eSpread*ePoint) return(0);
      if(!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(eExtremum+(eDistance+eSpread)*ePoint,eDigits),OrderTakeProfit(),OrderExpiration(),clrRed)) return(-1);
      }
   return(0);
   }



 
Что это было? 
 

Это был Трейл, старт, шаг в эксперте. например https://www.mql5.com/ru/job/172661.Открывайте ордера как на картинке. нет индикатора. использовать весь трейл уровня, проверяя все ручные ордера с трейлинг-стопом, стартом, шагом для открытых трейдеров с магическим номером (mt4) программно.


	          
Freelance service at MQL5.com: Simple updates to an existing EA
Freelance service at MQL5.com: Simple updates to an existing EA
  • 2022.06.24
  • www.mql5.com
I need to update this EA. The EA is designed to open pairs (positions or orders (Instant, limits or stops) in both directions). It works in MANUAL mode using a button on the chart panel or in AUTO mode at timed intervals. - I would like it to close EVERYTHING (positions and orders) when either a STOPLOSS or a TRAILING STOP has been hit. Leaving the chart clear for a new pair to open. - In AUTO mode I would like it to start opening pairs without having to press the START button on the CHART -
 
Alexey Stepanenko # :

если я должен проверять каждый заказ, это процесс проверки следа? (мт4). Спасибо. В целом, как используется трейлинг-стоп, старт, шаг? и когда вместо просто трейлинг-стопа.программно спасибо

 
Mary A Thompson #:

если я должен проверять каждый заказ, это процесс проверки следа? (мт4). Спасибо. В целом, как используется трейлинг-стоп, старт, шаг? и когда вместо просто трейлинг-стопа.программно спасибо

Обычно настаиваю на использовании здесь русского языка, но здесь особый случай, ничего не понять. 

Продублируйте, пожалуйста, на своём родном языке. 

Переводчик у Вас слабенький. 

 

It was a trail, a start, a step in the expert.  for example  https://www.mql5.com/en/job/172661  . Open orders as in the picture.  no indicator.  use the entire level trail by checking all manual orders with trailing stop, start, step for open traders with magic number (mt4) programmatically.

 if i have to check every order, is this the trail check process? (mt4). Thank you. In general, how is trailing stop, start, step used? and when instead of just a trailing stop. programmatically thanks        

Причина обращения: