[Arşiv!] Ücretsiz danışman yazacağım - sayfa 21

 
Vinin >> :

Onu götürsen iyi olur. Kırık ve hala ne olduğu bilinmeyen bir karışım. Korkunç bir şey olur. Okunabilir bir forma çevirebilmenize rağmen.


Danışman sadece Bai'de çalışır.

Lütfen onun Sell'de bekleyen emirlerle de çalışmasını mümkün kılın.


İşin özü: Mevcut fiyattan 50 ps uzaklıkta, BuyStop ve Buy Limit, 100 TP ile belirlenir.

alttan 50 ps arayla iki sipariş ve üstten 2 sipariş.

EA, her iki yönde de her zaman en az 2 bekleyen emir olacak şekilde çalışır.


Şimdiden teşekkürler :)
#property copyright "Slobodyan Oleg"
#property link      "http://www.metaquotes.net"

extern int Orders = 2 ;
extern double Lots = 0.01 ;
extern double StepLevel = 50.0 ;
extern int StopLoss = 3000 ;
extern int Profit = 100 ;
double gd_104 = 0.0 ;

int CheckBS ( ) {
   double l_ord_open_price_12 ;
   double ld_20 = 0 ;
   int l_count_8 = 0 ;
   int l_ord_total_0 = OrdersTotal ( ) ;
   for ( int l_pos_4 = 0 ; l_pos_4 < l_ord_total_0 ; l_pos_4 + + ) {
      if ( OrderSelect ( l_pos_4 , SELECT_BY_POS , MODE_TRADES ) = = TRUE ) {
         if ( OrderSymbol ( ) = = Symbol ( ) & & OrderType ( ) = = OP_BUY | | OrderType ( ) = = OP_BUYSTOP & & OrderMagicNumber ( ) = = 1 ) {
            if ( OrderOpenPrice ( ) - Ask > ld_20 & & OrderOpenPrice ( ) - Ask > 0.0 ) {
               ld_20 = OrderOpenPrice ( ) - Ask ;
               l_ord_open_price_12 = OrderOpenPrice ( ) ;
               l_count_8 + + ;
            }
         }
      }
   }
   if ( l_count_8 = = 0 ) {
      l_ord_open_price_12 = NormalizeDouble ( Bid - StepLevel * Point , Digits ) ;
      OrderSend ( Symbol ( ) , OP_SELLSTOP , Lots , l_ord_open_price_12 , 3 , l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104 , l_ord_open_price_12 + Profit * Point + gd_104 , "" , 1 , 0 , Navy ) ;
   }
   if ( l_count_8 < Orders & & l_count_8 ! = 0 ) {
      l_ord_open_price_12 = NormalizeDouble ( l_ord_open_price_12 + StepLevel * Point , Digits ) ;
      OrderSend ( Symbol ( ) , OP_SELLSTOP , Lots , l_ord_open_price_12 , 3 , l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104 , l_ord_open_price_12 + Profit * Point + gd_104 , "" , 1 , 0 , Navy ) ;
   }
   return ( 1 ) ;
}

int CheckBL ( ) {
   double l_ord_open_price_12 ;
   double ld_20 = 0 ;
   int l_count_8 = 0 ;
   int l_ord_total_0 = OrdersTotal ( ) ;
   for ( int l_pos_4 = 0 ; l_pos_4 < l_ord_total_0 ; l_pos_4 + + ) {
      if ( OrderSelect ( l_pos_4 , SELECT_BY_POS , MODE_TRADES ) = = TRUE ) {
         if ( OrderSymbol ( ) = = Symbol ( ) & & OrderType ( ) = = OP_SELL | | OrderType ( ) = = OP_SELLLIMIT & & OrderMagicNumber ( ) = = 2 ) {
            if ( Bid - OrderOpenPrice ( ) > ld_20 & & Bid - OrderOpenPrice ( ) > 0.0 ) {
               ld_20 = Bid - OrderOpenPrice ( ) ;
               l_ord_open_price_12 = OrderOpenPrice ( ) ;
               l_count_8 + + ;
            }
         }
      }
   }
   if ( l_count_8 = = 0 ) {
      l_ord_open_price_12 = NormalizeDouble ( Ask - StepLevel * Point , Digits ) ;
      OrderSend ( Symbol ( ) , OP_BUYLIMIT , Lots , l_ord_open_price_12 , 3 , l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104 , l_ord_open_price_12 + Profit * Point + gd_104 , "" , 2 , 0 , Navy ) ;
   }
   if ( l_count_8 < Orders & & l_count_8 ! = 0 ) {
      l_ord_open_price_12 = NormalizeDouble ( l_ord_open_price_12 - StepLevel * Point , Digits ) ;
      OrderSend ( Symbol ( ) , OP_BUYLIMIT , Lots , l_ord_open_price_12 , 3 , l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104 , l_ord_open_price_12 + Profit * Point + gd_104 , "" , 2 , 0 , Navy ) ;
   }
   return ( 1 ) ;
}

int CheckBS_min ( ) {
   double l_ord_open_price_12 ;
   double ld_20 = Ask ;
   int l_count_8 = 0 ;
   int l_ord_total_0 = OrdersTotal ( ) ;
   for ( int l_pos_4 = 0 ; l_pos_4 < l_ord_total_0 ; l_pos_4 + + ) {
      if ( OrderSelect ( l_pos_4 , SELECT_BY_POS , MODE_TRADES ) = = TRUE ) {
         if ( OrderSymbol ( ) = = Symbol ( ) & & OrderType ( ) = = OP_BUY | | OrderType ( ) = = OP_BUYSTOP & & OrderMagicNumber ( ) = = 1 ) {
            if ( OrderOpenPrice ( ) - Ask < ld_20 & & OrderOpenPrice ( ) - Ask > 0.0 ) {
               ld_20 = OrderOpenPrice ( ) - Ask ;
               l_ord_open_price_12 = OrderOpenPrice ( ) ;
               l_count_8 + + ;
            }
         }
      }
   }
   if ( l_count_8 = = 0 ) {
      l_ord_open_price_12 = NormalizeDouble ( Ask + StepLevel * Point , Digits ) ;
      OrderSend ( Symbol ( ) , OP_BUYSTOP , Lots , l_ord_open_price_12 , 3 , l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104 , l_ord_open_price_12 + Profit * Point + gd_104 , "" , 1 , 0 , Navy ) ;
   }
   if ( l_ord_open_price_12 - Ask > = 2.0 * StepLevel * Point & & l_count_8 ! = 0 ) {
      l_ord_open_price_12 = NormalizeDouble ( l_ord_open_price_12 - StepLevel * Point , Digits ) ;
      OrderSend ( Symbol ( ) , OP_BUYSTOP , Lots , l_ord_open_price_12 , 3 , l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104 , l_ord_open_price_12 + Profit * Point + gd_104 , "" , 1 , 0 , Navy ) ;
   }
   return ( 1 ) ;
}

int CheckBL_min ( ) {
   double l_ord_open_price_12 ;
   double ld_20 = Ask ;
   int l_count_8 = 0 ;
   int l_ord_total_0 = OrdersTotal ( ) ;
   for ( int l_pos_4 = 0 ; l_pos_4 < l_ord_total_0 ; l_pos_4 + + ) {
      if ( OrderSelect ( l_pos_4 , SELECT_BY_POS , MODE_TRADES ) = = TRUE ) {
         if ( OrderSymbol ( ) = = Symbol ( ) & & OrderType ( ) = = OP_BUY | | OrderType ( ) = = OP_BUYLIMIT & & OrderMagicNumber ( ) = = 2 ) {
            if ( Ask - OrderOpenPrice ( ) < ld_20 & & Ask - OrderOpenPrice ( ) > = 0.0 ) {
               ld_20 = Ask - OrderOpenPrice ( ) ;
               l_ord_open_price_12 = OrderOpenPrice ( ) ;
               l_count_8 + + ;
            }
         }
      
 
}
   }
   if (l_count_8 == 0) {
      l_ord_open_price_12 = NormalizeDouble(Ask - StepLevel * Point, Digits);
      OrderSend(Symbol(), OP_BUYLIMIT, Lots, l_ord_open_price_12, 3, l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104, l_ord_open_price_12 + Profit * Point + gd_104, "", 2, 0, Navy);
   }
   if (Ask - l_ord_open_price_12 >= 2.0 * StepLevel * Point - 2.0 * (Ask - Bid) && l_count_8 != 0) {
      l_ord_open_price_12 = NormalizeDouble(l_ord_open_price_12 + StepLevel * Point, Digits);
      OrderSend(Symbol(), OP_BUYLIMIT, Lots, l_ord_open_price_12, 3, l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104, l_ord_open_price_12 + Profit * Point + gd_104, "", 2, 0, Navy);
   }
   return (1);
}

int init() {
   return (0);
}

int deinit() {
   return (0);
}

int start() {
   gd_104 = 0;
   CheckBS();
   CheckBL();
   CheckBS_min();
   CheckBL_min();
   return (0);
}

Dosyalar:
yolka_1.mq4  6 kb
 
Vinin писал(а) >>

Bak. iyi çalışıyor gibi görünüyor

Bir hata düzeltildi

Dosyalar:
 
Vinin >> :

Bir hata düzeltildi

İletişim kuracağım bir şey olursa teşekkür ederim Victor

Gintaralar

Vilnius.

 
Vinin >> :

Bir hata düzeltildi

Victor, vakit varken aynı şeyi diğer arabaya da ver.

Samimi olarak.

 
dadi писал(а) >>

Victor, vakit bulunca aynı acımayı diğer arabaya da at.

Samimi olarak.

Deneyeceğim, ama işte nedeni

 
Vinin >> :

Deneyeceğim, ama işte nedeni

Elle çalışıyorum, bunu üstüne attım (ekli) ve iyi bir giriş ve çıkış çıktı 'çarmıhta' değil. ve oryantasyon ile hızlı bir şekilde ihtiyacınız olduğunda tek yönlü boyalar sizi gereksiz kargaşalardan kurtaracaktır.

Dosyalar:
 
Burada bir neden arıyorum, isimlere gereksiz harfler ekleniyor ve belki daha iyisi için ...
 
dadi писал(а) >>

Elle çalışıyorum, bunu üstüne attım (ekli) ve iyi bir giriş ve çıkış çıktı 'çarmıhta' değil. ve oryantasyon ile hızlı bir şekilde ihtiyacınız olduğunda tek yönlü boyalar sizi gereksiz kargaşalardan kurtaracaktır.

O zaman belki puanlara hiç ihtiyaç yoktur?

 
dadi писал(а) >>

Elle çalışıyorum, bunu üstüne attım (ekli) ve iyi bir giriş ve çıkış çıktı 'çarmıhta' değil. ve oryantasyon ile hızlı bir şekilde ihtiyacınız olduğunda tek yönlü boyalar sizi gereksiz kargaşalardan kurtaracaktır.

Dosyalar:
Neden: