그리고 이것으로 "만화"를 만들자 (다중 통화) - 페이지 12

 
Swan >> :

이 같은:

감사해요..

 

지금은 전공면에서 흥미롭다, 내 전공자와 직결된다..))

4시간 파운드, 유로, 추장, 뉴질랜드인, 캐나다인, 호주인 .. 준비된 자세)

어떻게 든 연결을 시도 할 수 있습니다 .. 일반적인 분석을하십시오 .. 선택한 쌍의 방향이 일치하면 설정합니다 ...

 
ALex2008 >> :

감사해요..

그래야 할듯..


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

아마도 그것 없이도 작동할 것입니다. 더 안정적입니다 :)


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

StopLoss는 SetStop() 함수에서 계산됩니다. 와 같을 것이다

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

StopLoss는 SetStop() 함수에서 계산됩니다. 와 같을 것이다

이건 다른 문제가 아닙니다.. 이 체크는 확실히 틀리지만, 이걸로 왼쪽 스톱을 확인하고 싶었습니다.. 그래야 합니다.

또는 그런

StopLoss=MathMax(b0,b1);
또는 그런

StopLoss=MathMin(s0,s1);

따라서 처음 StopLoss는 -0입니다.


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

그리고 위의 값 중 하나가 할당됩니다.. 따라서 정류장이 정확히 이와 같으면 더 이상 확인하지 않습니다..

백조 >> :

아마도 그것 없이도 작동할 것입니다. 더 안정적입니다 :)

수정..)





 
Swan >> :

if (유형<=1) SetStop();

그리고 바로 그곳으로 보내면 .. 매 4시간마다 정류장(b1,s1,b0,s0)에 대한 새 매개변수가 생기고 .. 변경됩니다.

 

어떻게든 인간적으로 쓰려고 노력했는데...맞아요..

검사를 중지하기 위해 mod 부울 변수를 추가 했습니다.

 //+------------------------------------------------------------------+
//|                                                    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 ) ;
  }
  
 
나는 내 견해를 표현하려고 노력할 것입니다. 어떤 경우에도 그것을 강요하지 않습니다 !!!
Treling, Stops, No Loss 및 기타 트릭은 절대 필요하지 않습니다. 그게 전부입니다.
초보자와 DC의 이익을 위해 고문 및 시스템 자체는 가능한 한 단순해야 합니다.
지표, 수준 등은 절대적으로 중요하지 않으며 가장 중요한 것은
SELL 및 BUY에 대한 엄격한 규칙, 시스템은 되돌릴 수 있습니다. 즉, 항상 시장에 있습니다!
다시 한 번, 이것은 내 관점입니다!
 
ALex2008 >> :

어떻게든 인간적으로 쓰려고 노력했는데...맞아요..

검사를 중지하기 위해 mod 부울 변수를 추가했습니다.


확인 모드 추가 및 오류 확인

파일:
candylite.mq4  5 kb
 
AAE >> :
나는 내 견해를 표현하려고 노력할 것입니다. 어떤 경우에도 그것을 강요하지 않습니다 !!!
Treling, Stops, No Loss 및 기타 트릭은 절대 필요하지 않습니다. 그게 전부입니다.
초보자와 DC의 이익을 위해 고문 및 시스템 자체는 가능한 한 단순해야 합니다.
지표, 수준 등은 절대적으로 중요하지 않으며 가장 중요한 것은
SELL 및 BUY에 대한 엄격한 규칙, 시스템은 되돌릴 수 있습니다. 즉, 항상 시장에 있습니다!
다시 한 번, 이것은 내 관점입니다!

당신의 관점에 전적으로 동의하지 않습니다 :)