[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 159

 
1Rakso >> :

1) 외부 변수를 통해 비활성화하는 방법은 무엇입니까?

2) 첫 번째 열린 주문이 OrderClose에 의해 닫히고 후속 주문 2, 3 등이 닫히지 않도록 설정할 수 있습니까? 내가 구매 주문을 열었다고 가정합니다. 이것이 첫 번째 주문이고, 다른 구매 주문(두 번째 주문 등)을 열고 이 일련의 주문 중 첫 번째 주문만 OrderClose 에 의해 마감됩니까?

https://www.mql5.com/ru/forum/105913 주소의 페이지를 스크롤하십시오.

1) 대략, 그래서 -

 extern bool      AutoClose = True ;
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


//********* Закрытие позиций ****************************************
if ( AutoClose ) {  
//----переменные для закрытия позиций ----
double Stochast_0 = iStochastic ( NULL , 0 , Stochastic_period , 3 , 3 , MODE_SMA , 0 , MODE_MAIN , 0 ) ;
double Stochast_1 = iStochastic ( NULL , 0 , Stochastic_period , 3 , 3 , MODE_SMA , 0 , MODE_MAIN , 1 ) ;
//----------------------------------------------------------------------
  for ( int v = 0 ; v < OrdersTotal ( ) ; v + + )                             {       
      if ( OrderSelect ( v , SELECT_BY_POS , MODE_TRADES ) )               {           
        if ( OrderSymbol ( ) = = Symbol ( ) & & OrderMagicNumber ( ) = = MagicNum )   { 
//-----------------------------------------------------                  
if ( OrderType ( ) = = OP_BUY ) { 
      if ( Stochast_1 > 75 & & Stochast_0 < 75 )     {
           OrderClose ( OrderTicket ( ) , OrderLots ( ) , Bid , 3 , Green ) ; // закрываем позицию
                // return(0); // выходим
                }       
     }  
 //--------------------------------------------------------
if ( OrderType ( ) = = OP_SELL ) { 
      if ( Stochast_1 < 25 & & Stochast_0 > 25 )    {
                 OrderClose ( OrderTicket ( ) , OrderLots ( ) , Ask , 3 , Green ) ; // закрываем позицию
                // return(0); // выходим
                }       
     }  
 //-------------------------------------------------------                       
    }  // Symbol()  
  } // select
 } //total
} //Close_

2)

전에 잠금( // )을 제거하십시오.

// 반환(0); // 출구

그런 다음 첫 번째(또는 마지막) 위치만 닫힙니다.

 
PyMbIH >> :

안녕하세요 ))))

돕다.

mql4가 프로그래밍을 시작했습니다.

전문가를 쓰고 있습니다 .. 그런 질문이있었습니다

그렇게 하는 방법.

내 EA가 월요일에만 작동하기를 원합니다.

 //Открытие и закрытие  позиций только в понедельник  
      if ( TimeDayOfWeek ( TimeCurrent ( ) ) = = 1 )
         return ( 0 ) ;  
 
rid писал(а) >>

고맙습니다!!

 
Vinin >> :

Vinin님 감사합니다 =)

 
rid >> :

주소 '마감 위치'의 페이지를 살펴보십시오. 표시 신호로.'

1) 대략, 그래서 -

2)

전에 잠금( // )을 제거하십시오.

// 반환(0); // 출구

그런 다음 첫 번째 위치만 닫힙니다.

제거 감사합니다!

많은 도움을 주셨고 아직도 친절한 분들이 계세요)

다 이해했습니다 매트 부분을 읽으러 가겠습니다 시간을 많이 들이지 않으셨으면 합니다)

 

도와주세요.

1.mq4(첨부) EA의 시각적 테스트 중에 3-cci-h3 표시기(첨부)를 차트로 드래그하면 계산된 cci의 절대적으로 동일한 매개변수를 사용하여 표시기 신호 및 실제 cci(오른쪽 상단 모서리에 있는 개체 텍스트)가 일치하지 않습니다.

왜요?

그리고 어떤 이유로 이 칠면조에서는 경고가 작동하지 않습니다.

어드바이저 코드:

 double lasthigh , lastlow , lasthigh2 = 200000 , lastlow2 = 0 , lastpos = 0 , t [ 2 ] ;

int start ( )
{ Comment ( "" ) ;
lasthigh = High [ 1 ] ; lastlow = Low [ 1 ] ;
if ( lasthigh < lasthigh2 ) lasthigh2 = lasthigh ;
if ( lastlow > lastlow2 ) lastlow2 = lastlow ;
t [ 0 ] = lasthigh2 ;
t [ 1 ] = lastlow2 ;  
string s1 = "lasthigh2 *** " + DoubleToStr ( t [ 0 ] , 5 ) ;
string s2 = "lastlow2 *** " + DoubleToStr ( t [ 1 ] , 5 ) ;
string str [ 2 ] ;
str [ 0 ] = s1 ;
str [ 1 ] = s2 ;
color col = Lime ;
     for ( int y = 0 ; y < 2 ; y + + )
     { ObjectCreate ( "textSignal" + y , OBJ_LABEL , 0 , 0 , 0 , 0 , 0 ) ;    
      ObjectSet ( "textSignal" + y , OBJPROP_CORNER , 1 ) ;
      ObjectSet ( "textSignal" + y , OBJPROP_XDISTANCE , 35 - 25 ) ;
      ObjectSet ( "textSignal" + y , OBJPROP_YDISTANCE , y * ( 20 ) + 20 + 8 ) ;
      ObjectSetText ( "textSignal" + y , str [ y ] , 15 , "Tahoma" , col ) ;
     }
  
  if ( lastpos = = 0 ) { if ( lastlow2 > lasthigh ) {
  Comment ( "PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   PRODAGA!!!" ,
  "PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   PRODAGA!!!   " ) ; lasthigh2 = 2000000 ; lastlow2 = 0 ; lastpos = 1 ; } }
  else { if ( lasthigh2 < lastlow ) { Comment ( "POKUPKA!!!   POKUPKA!!!   POKUPKA!!!   POKUPKA!!!   POKUPKA!!!   POKUPKA!!!   POKUPKA!!!" ,
  "   POKUPKA!!!   POKUPKA!!!   POKEPKA!!!   POKEPKA!!!   POKEPKA!!!" ) ; lasthigh2 = 2000000 ; lastlow2 = 0 ; lastpos = 0 ; } }

}


표시기 코드:

 //+------------------------------------------------------------------+
//|                                                     i-3CCI-h.mq4 |
//|                                               johnfantom & KimIV |
//|                                              http://www.kimiv.ru |
//|                                                                  |
//|  02.01.2006  CCI с 3-х ТФ в одном флаконе.                       |
//+------------------------------------------------------------------+
#property copyright "johnfantom & KimIV"
#property link      "http://www.kimiv.ru"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
#property indicator_maximum 1.4
#property indicator_level1  0
#property indicator_minimum - 1.2

//------- Внешние параметры индикатора -------------------------------
extern int CCI_Period_0 = 14 ;     // Период CCI для текущего ТФ
extern int Level_0      = 100 ;    // Уровень CCI для текущего ТФ
extern int TF_1         = 60 ;     // Количество минут первого ТФ
extern int CCI_Period_1 = 14 ;     // Период CCI для первого ТФ
extern int Level_1      = 100 ;    // Уровень CCI для первого ТФ
extern int TF_2         = 240 ;    // Количество минут второго ТФ
extern int CCI_Period_2 = 14 ;     // Период CCI для второго ТФ
extern int Level_2      = 100 ;    // Уровень CCI для второго ТФ
extern int NumberOfBars = 1000 ;  // Количество баров обсчёта (0-все)
extern int ExtBars = 3 ; 
int per ;


//------- Буферы индикатора ------------------------------------------
double buf0 [ ] ;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void init ( ) {
  IndicatorDigits ( 1 ) ;

  SetIndexBuffer ( 0 , buf0 ) ;
  SetIndexLabel ( 0 , "i-3CCI-h" ) ;
  SetIndexStyle ( 0 , DRAW_HISTOGRAM , STYLE_SOLID , 2 ) ;
  SetIndexEmptyValue ( 0 , 0 ) ;
}

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void deinit ( ) {
  Comment ( "" ) ;
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
void start ( ) {
  double cci0 , cci1 , cci2 ;
  int    nb1 , nb2 , count ;
  int    LoopBegin , sh ;


 	if ( NumberOfBars = = 0 ) LoopBegin = Bars - 1 ;
  else LoopBegin = NumberOfBars - 1 ;
  LoopBegin = MathMin ( Bars - 1 , LoopBegin ) ;
  count = IndicatorCounted ( ) ;
  for ( sh = count ; sh > = 0 ; sh - - ) {
    nb1 = iBarShift ( NULL , TF_1 , Time [ sh + 1 ] , False ) ;
    nb2 = iBarShift ( NULL , TF_2 , Time [ sh + 1 ] , False ) ;

    cci0 = iCCI ( NULL , 0   , CCI_Period_0 , PRICE_CLOSE , sh + 1 ) ;
    cci1 = iCCI ( NULL , TF_1 , CCI_Period_1 , PRICE_CLOSE , nb1 ) ;
    cci2 = iCCI ( NULL , TF_2 , CCI_Period_2 , PRICE_CLOSE , nb2 ) ;
    
   /* double cci[3];
    cci[0]=cci0;
    cci[1]=cci1;
    cci[2]=cci2;
    string s1="cci-0 *** "+DoubleToStr(cci[0],3);
    string s2="cci-1 *** "+DoubleToStr(cci[1],3);
    string s3="cci-2 *** "+DoubleToStr(cci[2],3);
    string str[3];
    str[0]=s1;
    str[1]=s2;
    str[2]=s3;
    color col=Lime;
     for(int y=0;y<3;y++)
     {ObjectCreate("textSignal"+y,OBJ_LABEL,0,0,0,0,0);    
      ObjectSet("textSignal"+y,OBJPROP_CORNER,1);
      ObjectSet("textSignal"+y,OBJPROP_XDISTANCE,35-25);
      ObjectSet("textSignal"+y,OBJPROP_YDISTANCE,y*(20)+20+8);
      if(cci[y]>=0)col=Lime;else col=Red;
      if(cci[y]>Level_0) col=Aqua;
      if(cci[y]<-Level_0) col=DarkViolet;
      ObjectSetText("textSignal"+y,str[y],15,"Tahoma",col);
     }
*/
    if ( cci0 > Level_0 & & cci1 > Level_1 & & cci2 > Level_2 ) { buf0 [ sh ] = 1 ;
    if ( per ! = Time [ 0 ] ) { per = Time [ 0 ] ;
    if ( sh < = ExtBars & & ExtBars ! = - 1 )
    Alert ( Symbol ( ) , Period ( ) , " " ,
                              TimeYear ( Time [ sh ] ) , "." ,
                              TimeDay ( Time [ sh ] ) , "." ,
                              TimeMonth ( Time [ sh ] ) , "; " ,
                              TimeHour ( Time [ sh ] ) , ":" ,
                              TimeMinute ( Time [ sh ] ) , " " ,
                              "Покупка" ) ; } }
    if ( cci0 < - Level_0 & & cci1 < - Level_1 & & cci2 < - Level_2 ) { buf0 [ sh ] = - 1 ;
    if ( per ! = Time [ 0 ] ) { per = Time [ 0 ] ;
    if ( sh < = ExtBars & & ExtBars ! = - 1 )
    Alert ( Symbol ( ) , Period ( ) , " " ,
                              TimeYear ( Time [ sh ] ) , "." ,
                              TimeDay ( Time [ sh ] ) , "." ,
                              TimeMonth ( Time [ sh ] ) , "; " ,
                              TimeHour ( Time [ sh ] ) , ":" ,
                              TimeMinute ( Time [ sh ] ) , " " ,
                              "Продажа" ) ; } }
  }
}
//+------------------------------------------------------------------+
 
sergeev >> :

bystop에 대해 다음과 같이




그리고 열린 위치에서 보류 주문을 넣는 방법은 무엇입니까?

 
ArtY0m >> :

그리고 열린 위치에서 보류 주문을 넣는 방법은 무엇입니까?

먼저 마지막 오픈 포지션의 시가를 프로그래밍 방식으로 결정해야 합니다.

이렇게 하려면 acc를 사용할 수 있습니다. 이미 준비된 기능, -

PriceOpenLastPos() 함수.
이 함수는 마지막 오픈 포지션의 시가를 반환합니다. 고려할 위치 선택은 외부 매개변수에 의해 설정됩니다.
sy - 시장 상품의 이름. 이 매개변수를 설정하면 이 기능은 지정된 도구의 위치만 고려합니다. 기본값은 ""는 모든 시장 상품을 의미합니다. NULL 값은 현재 기기를 의미합니다.
op - 거래 작업, 위치 유형. 유효한 값: OP_BUY, OP_SELL 또는 -1. 기본값 -1은 임의의 위치를 의미합니다.
mn - 위치 ID, MagicNumber. 기본값 -1은 모든 식별자를 의미합니다.
'김IV의 유용한 기능'

//-------

코드의 맨 끝에 함수 자체를 삽입합니다.

그리고 START 기능에서 호출하고 필요한 마지막 포지션(매수 또는 매도)의 시가를 설정합니다. 예를 들면 -

이중 OpenPrice=PriceOpenLastPos(NULL,OP_BUY, MAGIC) ;

 
rid >> :

먼저 마지막 오픈 포지션의 가격을 프로그래밍 방식으로 결정해야 합니다.

이렇게 하려면 acc를 사용할 수 있습니다. 이미 준비된 기능, -

PriceOpenLastPos() 함수.
이 함수는 마지막 오픈 포지션의 시가를 반환합니다. 고려할 위치 선택은 외부 매개변수에 의해 설정됩니다.
sy - 시장 상품의 이름. 이 매개변수를 설정하면 이 기능은 지정된 도구의 위치만 고려합니다. 기본값은 ""는 모든 시장 상품을 의미합니다. NULL 값은 현재 기기를 의미합니다.
op - 거래 작업, 위치 유형. 유효한 값: OP_BUY, OP_SELL 또는 -1. 기본값 -1은 임의의 위치를 의미합니다.
mn - 위치 ID, MagicNumber. 기본값 -1은 모든 식별자를 의미합니다.

'김IV의 유용한 기능'

//-------

코드의 맨 끝에 함수 자체를 삽입합니다.

그리고 START 기능에서 호출하고 원하는 마지막 포지션(매수 또는 매도)의 시가를 설정합니다. 예를 들면 -

이중 OpenPrice=PriceOpenLastPos(NULL,OP_BUY, MAGIC) ;

정말 감사합니다!))

 

표시기에서 조건이 충족되면 텍스트 파일에 표시가 있는 줄을 넣고 싶습니다(무엇이든 상관없습니다. 날짜와 시간을 말합시다).

파일이 생성되고 행이 추가되지만 실시간으로만 가능합니다. 역사 작업을 할 때 메모를 하고 싶습니다. 이 작업을 수행하는 방법을 아는 사람이 있습니까?

고맙습니다!





사유: