Birbirinden bağımsız iki pozisyonu yöneten bir kar trolünün tavsiyesine ihtiyacım var, nasıl uygulayabilirim? - sayfa 6

 
charony :

aşağı yukarı böyle çalışır


sadece trolün etkinleştirilmesi için kriterlerle ilgilenmiyorum

Her açık pozisyonu diğerlerinden ayrı tutmak için patikaya ihtiyacım var

Gönderdiğim esaret sadece artı olan pozisyonları trol etmeye başlıyor, eksi pozisyonların ayaklarına hiç değmiyor.

"Her iki pozisyon için de 50 puanlık bir iz bırakmak mümkün,

ama aynı anda kapanmayacaklar

her iki 50 puan için trol"

Her ikisi de yalnızca artıdaysa, 1 artıda ve diğeri eksideyse kapanır, o zaman stop sadece artıda hareket eder.

 
PozitiF :

Tüm sayfaları okumadım ama genel bir fikir edindiğimi düşünüyorum.

https://www.mql5.com/en/articles/1390 burada emirler ile dizi oluştur, emir oluştururken sihri bir yerden al danışmanın giriş parametrelerine Magic = 1 yazabilirsin; örneğin ve müteakip bir açık siparişle değeri 1 artırın,

terminal çökerse diziyi geri yükleyebilirsiniz.

Büyücünün bir önceki sayfada parametre olarak aldığı Thrall.



orada dizi doğru değil, int ve double'ı tek bir dizide birleştiremezsiniz.
 
charony :

orada dizi doğru değil, int ve double'ı tek bir dizide birleştiremezsiniz.
Yapabilirsin, sadece noktadan önce bir tamsayı koy.
 
PozitiF :
Yapabilirsin, noktanın önüne bir tamsayı koyman yeterli.


çift fiyat EUR/USD 1.3915 int 1

int satış = 1, çift satışta = 1.0

sonra programın neden çalışmadığını ararız ????????

hatta daha da kötüsü, "Kolya Marzhin" amca geliyor

 

ve neden fiyatı int'ye koymanız gerekiyor, bununla ilgili bir şey yazmadım ve teklif etmedim.

Double türünde bir değişkene int numarası yerleştirmenin mümkün olduğunu yazdım.

double'dan tekrar int'ye ve yine her şey sizin için çalışıyor 1) https://www.mql5.com/ru/forum/136406

 

Açmak için int MN= TimeCurrent() ; ve bu OrderSend(Symbol(),OP_BUY,Lots_New,Ask,2,0,0,NULL,MN,0,Green);

yani her siparişe bir sihir atanır

seçimden sonra trolde

int İpucu=SiparişTürü();

if(OrderSymbol()!=Symbol()||İpucu>1)devam et;

if(OrderMagicNumber()==MN)

şimdi deneyeceğim

 

hayır, çalışmıyor, muhtemelen başka bir şey bozuldu, şimdi takip etmekten bahsediyorum

arayacak

 
PozitiF :

ve neden fiyatı int'ye koymanız gerekiyor, bununla ilgili bir şey yazmadım ve teklif etmedim.

Double türünde bir değişkene int numarası yerleştirmenin mümkün olduğunu yazdım.

double'dan tekrar int'ye ve yine her şey sizin için çalışıyor 1) https://www.mql5.com/en/forum/136406

çift fiyat EUR/USD 1.3915 int 1'de sonra tekrar çift fiyatta 1.0 alırız

çift fiyat EUR/USD 1.3915 =========> çift 1.0

nereye gülüyorlar??????????????????



int 1------> double 1.0 ------> int 1 muhtemelen burada çalışacak, ancak bağırsak değil

 
charony :

hayır, çalışmıyor, muhtemelen başka bir şey bozuldu, şimdi takip etmekten bahsediyorum

arayacak

Thrall %100 çalışıyor, neredeyse tüm danışmanlarda benim için çalışıyor.

 int Trall = 50 ;

int MN= TimeCurrent ();

OrderSend ( Symbol (),OP_BUY,Lots_New,Ask, 2 , 0 , 0 , NULL ,MN, 0 , Green );

int Tip= OrderType ();

if ( OrderSymbol ()!= Symbol ()||Tip> 1 ) continue ;
for(int i = 0; i<OrderTotals(); i++){
   if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true){
      if ( OrderMagicNumber ()==MN) TrailingStop(Trall, 5 , MN);
   }
}

Trol olmalı.

 
//+-----------------------------trailingstop----------------------------------------------+
 total= OrdersTotal ();
     for ( int n= 0 ;n<total;n++)
     {
       if ( OrderSelect (n, SELECT_BY_POS, MODE_TRADES) == true)
         { 
         int Tip= OrderType ();                  
         if ( OrderSymbol ()== Symbol ()&& OrderType ()==Tip)
            {
                MN = OrderMagicNumber ();
                TrailingStop(level_ts, level_step , MN);
            } 
         }    
      }
 
  

   
   return ;                             // exit start()
  }
//+-----------------------------start end----------------------------------------------+

void TrailingStop( int level_ts, int level_step , int MN) 
{
   int ot, err, quantity_orders, cx;
   bool fm;
   double op, as, bd, pt, sl, tp, ut;
//----
   quantity_orders = OrdersTotal ();
   if (quantity_orders >= 0 ) {
       for (cx = 0 ; cx < quantity_orders; cx++) {
         if (! OrderSelect (cx, SELECT_BY_POS, MODE_TRADES)) {
             Print ( "Error: SimpleTrailing(), OrderSelect: " + cx + ". Îøèáêà: " + GetLastError ());
         }
         if ( OrderMagicNumber ()==MN ) 
         {   
            pt = MarketInfo ( OrderSymbol (), MODE_POINT);
            bd = MarketInfo ( OrderSymbol (), MODE_BID);
            as = MarketInfo ( OrderSymbol (), MODE_ASK);
            op = OrderOpenPrice ();
            ot = OrderType ();
            sl = OrderStopLoss ();
            tp = OrderTakeProfit ();
            ut = level_ts + level_step;
         
             if (ot == OP_BUY) {
               if (sl == 0 || sl < op) {                              
                   if (op <  (bd - ut * pt)) {                         
                     sl = bd - level_ts * pt;
                  }
               }
               else {
                   if (sl < (bd - ut * pt) && bd > (op + ut * pt)) {
                     sl = bd - level_ts * pt;
                  }
               }
            }
             if (ot == OP_SELL) {
               if (sl == 0 || sl > op) {
                   if (op > (as + ut * pt)) {
                     sl = as + level_ts * pt;
                  }
               }
               else {
                   if (sl > (as + ut * pt) && as < (op - ut * pt)) {
                     sl = as + level_ts * pt;
                  }
               }
            }
             if (sl != OrderStopLoss ()) {
               op = NormalizeDouble (op, Digits );
               tp = NormalizeDouble (tp, Digits );
               sl = NormalizeDouble (sl, Digits );
               fm = OrderModify ( OrderTicket (), op, sl, tp, 0 , CLR_NONE );
               
            }
         }
      }
   }
}

//+-----------------------------trailingstop end----------------------------------------------+

kodu ekledim, trol çalışıyor

ama sorun devam ediyor