Ve bundan bir "çizgi film" yapalım (çok para birimi) - sayfa 12

 
Swan >> :

şöyle bir şey:

Teşekkürler..

 

Şu anda ana dal açısından ilginç, uzmanım için doğrudan bir hizalama ..))

4 saat pound, euro, şef, Yeni Zelandalı, Kanadalı, Avustralyalı .. hazır pozisyona girdi)

Bir şekilde bağlanmayı deneyebilirsiniz .. genel bir analiz yapın .. Seçilen çiftlerin yönleri eşleşirse, o zaman ...

 
ALex2008 >> :

Teşekkürler..

Olması gerektiği gibi..


      CheckBU = false ;
      if ( Type = = 0 & & Stop > OpenPrise ) CheckBU = true ;
       if ( Type = = 1 & & Stop < OpenPrise ) CheckBU = true ;   

belki onsuz çalışır, daha güvenilirdir :)


 if ( ( Type < = 1 ) & & ( Stop = = 0 | | Stop ! = StopLoss ) )        SetStop ( );

StopLoss, SetStop() işlevinde hesaplanır. ile aynı olacak

 if ( Type < = 1 )        SetStop ( );
 
Swan >> :

StopLoss, SetStop() işlevinde hesaplanır. ile aynı olacak

Bu başka bir konu değil.. Bu çek kesinlikle doğru değil ama sol durağı bununla kontrol etmek istedim..

ya da böyle

StopLoss=MathMax(b0,b1);
ya da böyle

StopLoss=MathMin(s0,s1);

Bu nedenle, StopLoss ilk kez -0


if(!WorkOrders()){
      StopLoss=0;

Ve sonra yukarıdaki değerlerden biri atanır.. Ve buna göre stop tam olarak böyleyse artık kontrol edilmez..

Kuğu >> :

belki onsuz çalışır, daha güvenilirdir :)

Düzeltildi..)





 
Swan >> :

if (Tür<=1) SetStop();

Ve hemen oraya gönderirseniz .. o zaman her 4 saatte bir stop (b1,s1,b0,s0) .. için yeni parametreler olacak ve değişecek ..

 

Bir şekilde insanca yazmaya çalıştım ... doğru ..

Kontrolü durdurmak için mod boole değişkeni eklendi .

 //+------------------------------------------------------------------+
//|                                                    CandyLite.mq4 |
//|                                                    Ш.Александр.В |
//|                                              shestovav@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Ш.Александр.В"
#property link      "shestovav@gmail.com"

#include <stdlib.mqh>

extern double Profit    = 3000 ;
extern double Lot       = 0.1 ;
extern bool BU          = true ;
extern double BUenter   = 150 ;
extern double BUstop    = 10 ;


int Type , Ticket ;
double OpenPrise , EnterBU , StopLossBU , SLmax , Stop , StopLevel , b1 , s1 , b0 , s0 , StopLoss , Enter ;
bool mod , CheckBU ;

int init ( ) {
   Profit * = Point ; 
   BUenter * = Point ;
   BUstop * = Point ;
   return ( 0 ) ;
  }

int deinit ( ) {
   return ( 0 ) ;
  }

int start ( ) {
   StopLevel = Point * MarketInfo ( Symbol ( ) , MODE_STOPLEVEL ) ;   // вычисление стоплевел //Point*
   
   if ( ! WorkOrders ( ) ) {
      mod = false ;
      StopLoss = 0 ;
      StopLossBU = 0 ;
      UpTrend ( ) ;
      DownTrend ( ) ;
   }
      
   if ( WorkOrders ( ) ) {
      if ( ( Type < = 1 ) & & ( Stop = = 0 | | ! mod ) )                 SetStop ( ) ;
      if ( ( BU = = true ) & & ( Type < = 1 ) & & ( ! CheckBU ) )          SetBU ( ) ;
      if ( ( Type = = 1 ) | | ( Type = = 5 ) )                       UpTrend ( ) ;
      if ( ( Type = = 0 ) | | ( Type = = 4 ) )                       DownTrend ( ) ;
      //Comment("SL=", );
   }

   return ( 0 ) ;
  }
//-------Поиск входа для установки ордеров, удаление старых ордеров и установка новых
void UpTrend ( ) {
     if ( ( iOpen ( NULL , PERIOD_H4 , 1 ) - iClose ( NULL , PERIOD_H4 , 1 ) < = 0 ) & &
        ( iOpen ( NULL , PERIOD_H4 , 2 ) - iClose ( NULL , PERIOD_H4 , 2 ) > 0 ) ) {
         Enter = iHigh ( NULL , PERIOD_H4 , 1 ) + ( Ask - Bid ) + 10 * Point ;
         SLmax = iLow ( NULL , PERIOD_H4 , 1 ) - 10 * Point ;
         if ( IsTradeAllowed ( ) ) {
            DellAllOrders ( ) ;
            if ( Enter - Ask > StopLevel - 0.5 * Point ) {
               OrderSend ( Symbol ( ) , OP_BUYSTOP , Lot , Enter , 0 , SLmax , Enter + Profit , 0 , 0 , 0 , Green ) ; }
         else Sleep ( 1000 ) ;
         }
      }
  }
void DownTrend ( ) {
     if ( ( iOpen ( NULL , PERIOD_H4 , 1 ) - iClose ( NULL , PERIOD_H4 , 1 ) > = 0 ) & &
        ( iOpen ( NULL , PERIOD_H4 , 2 ) - iClose ( NULL , PERIOD_H4 , 2 ) < 0 ) ) {
         Enter = iLow ( NULL , PERIOD_H4 , 1 ) - 10 * Point ;
         SLmax = iHigh ( NULL , PERIOD_H4 , 1 ) + ( Ask - Bid ) + 10 * Point ;
         if ( IsTradeAllowed ( ) ) {
            DellAllOrders ( ) ;
            if ( Bid - Enter > StopLevel - 0.5 * Point ) {
               OrderSend ( Symbol ( ) , OP_SELLSTOP , Lot , Enter , 0 , SLmax , Enter - Profit , 0 , 0 , 0 , Green ) ; }
         else Sleep ( 1000 ) ;
         }
      }
  }

//-------Вычисление стопа и установка
void SetStop ( ) {
      RefreshRates ( ) ;
      b0 = iLow ( NULL , PERIOD_H4 , 0 ) - 10 * Point ;
      s0 = iHigh ( NULL , PERIOD_H4 , 0 ) + ( Ask - Bid ) + 10 * Point ;
      b1 = iLow ( NULL , PERIOD_H4 , 1 ) - 10 * Point ;
      s1 = iHigh ( NULL , PERIOD_H4 , 1 ) + ( Ask - Bid ) + 10 * Point ;
            
         if ( Type = = 0 ) {
            StopLoss = MathMax ( b0 , b1 ) ;
            if ( Stop ! = StopLoss ) mod = OrderModify ( Ticket , OpenPrise , StopLoss , OrderTakeProfit ( ) , 0 , Red ) ;
            else mod = true ;
         }
         if ( Type = = 1 ) {
            StopLoss = MathMin ( s0 , s1 ) ;
            if ( Stop ! = StopLoss ) mod = OrderModify ( Ticket , OpenPrise , StopLoss , OrderTakeProfit ( ) , 0 , Red ) ;
            else mod = true ;
         }
   }

//-------Вычисление бу и установка
void SetBU ( ) {
      if ( Type = = 0 ) {
         EnterBU = OpenPrise + BUenter ;
         StopLossBU = OpenPrise + BUstop ;
         RefreshRates ( ) ;
         if ( Bid > = EnterBU ) {
            StopLoss = StopLossBU ;
            OrderModify ( Ticket , OpenPrise , StopLossBU , OrderTakeProfit ( ) , 0 , Red ) ; }
      }
      if ( Type = = 1 ) {
         EnterBU = OpenPrise - BUenter ;
         StopLossBU = OpenPrise - BUstop ;
         RefreshRates ( ) ;
         if ( Ask < = EnterBU ) {
            StopLoss = StopLossBU ;
            OrderModify ( Ticket , OpenPrise , StopLossBU , OrderTakeProfit ( ) , 0 , Red ) ; }
      }
}
   
//-------Удаление всех ордеров, открытых и отложенных
void DellAllOrders ( ) {
      if ( WorkOrders ( ) ) {
      if ( Type < = 1 ) OrderClose ( Ticket , OrderLots ( ) , OrderClosePrice ( ) , 10 ) ;
      else OrderDelete ( Ticket ) ; }
  }
  
//-------Поиск ордеров
bool WorkOrders ( ) {
      for ( int i = OrdersTotal ( ) - 1 ; i > = 0 ; i - - ) {
      if ( ! OrderSelect ( i , SELECT_BY_POS ) )  continue ;
      if ( OrderSymbol ( ) ! = Symbol ( ) )        continue ;
      OpenPrise = OrderOpenPrice ( ) ;
      Type     = OrderType ( ) ;
      Ticket   = OrderTicket ( ) ;
      Stop     = OrderStopLoss ( ) ;
      CheckBU = false ;
      if ( Type = = 0 & & Stop > OpenPrise ) CheckBU = true ;
      if ( Type = = 1 & & Stop < OpenPrise ) CheckBU = true ;
      return ( true ) ; }
  return ( false ) ;
  }
  
 
Bakış açımı ifade etmeye çalışacağım, hiçbir durumda empoze etmiyorum !!!
Trelings, stop, kayıp yok ve diğer numaralar kesinlikle gerekli değil, hepsi bu
yeni başlayanlar için ve DC'nin yararına, danışman ve sistemin kendisi mümkün olduğunca basit olmalıdır,
göstergeler, seviyeler vb. kesinlikle önemli değil, asıl şey şu olmalı
SAT ve AL için katı kurallar vardır, sistem tersine çevrilebilir, yani her zaman piyasada!
Bir kez daha, bu benim bakış açım!
 
ALex2008 >> :

Bir şekilde insanca yazmaya çalıştım ... doğru ..

Kontrolü durdurmak için mod boole değişkeni eklendi.


modun eklendiğini ve hata kontrolünü kontrol edin

Dosyalar:
candylite.mq4  5 kb
 
AAE >> :
Bakış açımı ifade etmeye çalışacağım, hiçbir durumda empoze etmiyorum !!!
Trelings, stop, kayıp yok ve diğer numaralar kesinlikle gerekli değil, hepsi bu
yeni başlayanlar için ve DC'nin yararına, danışman ve sistemin kendisi mümkün olduğunca basit olmalıdır,
göstergeler, seviyeler vb. kesinlikle önemli değil, asıl şey şu olmalı
SAT ve AL için katı kurallar vardır, sistem tersine çevrilebilir, yani her zaman piyasada!
Bir kez daha, bu benim bakış açım!

görüşünüze kesinlikle katılmıyorum :)

Neden: