포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 836

 

팁 고마워. 그래서 메시지가 잘 안 보인다는 생각이 들었다. 알겠습니다. 메시지를 수정하고 있습니다.

 //+------------------------------------------------------------------+
//|                                                    SimpleBars.mq4|
//|                                                  excelf@gmail.com|
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, Ivan Kornilov. All rights reserved."
#property link "excelf@gmail.com"

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Red
#property indicator_color2 Green
#property indicator_color3 Red
#property indicator_color4 Green

#define SIGNAL_NONE         0 //Пустой сигнал
#define SIGNAL_BUY         1 //Сигнал на покупку 
#define SIGNAL_SELL       - 1 //Сигнал на продажу 
#define SIGNAL_TRADE_ALLOW 3 //Сигнал разрешающий торговлю


extern int period = 6 ;
extern bool useClose = true ;
extern int width = 1 ;

double bufferRed1[];
double bufferGreen1[];
double bufferRed2[];
double bufferGreen2[];
double trand[];

int init() {
    IndicatorBuffers( 5 );
 
     SetIndexBuffer ( 0 , bufferRed1);
     SetIndexBuffer ( 1 , bufferGreen1);
     SetIndexBuffer ( 2 , bufferRed2);
     SetIndexBuffer ( 3 , bufferGreen2);
     SetIndexBuffer ( 4 , trand);
    
    IndicatorDigits( Digits + 1 );
    SetIndexStyle( 0 , DRAW_HISTOGRAM , 0 , 1 );
    SetIndexStyle( 1 , DRAW_HISTOGRAM , 0 , 1 );
    SetIndexStyle( 2 , DRAW_HISTOGRAM , 0 , width);
    SetIndexStyle( 3 , DRAW_HISTOGRAM , 0 , width);
}


int start() {
   int counted_bars=IndicatorCounted();

   if (counted_bars > 0 ) {
       counted_bars--;
   }
   int limit = Bars - counted_bars;

   int j;
   double buyPrice;
   double sellPrice;
   for ( int i = limit - 1 ; i >= 0 ; i--) {
         if (useClose) {
            buyPrice = Close[i];
            sellPrice = Close[i];
        } else {
            buyPrice = Low[i];
            sellPrice = High[i];
        }
         if (trand[i + 1 ] == SIGNAL_NONE || trand[i + 1 ] == EMPTY_VALUE ) {
             if (Close[i] > Open[i]) {
               trand[i] = SIGNAL_BUY;
           } else {
               trand[i] = SIGNAL_SELL;
           }
        } else {
             if (trand[i + 1 ] == SIGNAL_BUY) {
                 if (buyPrice > Low[i + 1 ]) {
                   trand[i] = SIGNAL_BUY;
                } else {
                   for (j = 2 ; j <= period; j++) {
                         if (buyPrice > Low[i + j]) {
                           trand[i] = SIGNAL_BUY;
                         break ;
                        } else {
                           trand[i] = SIGNAL_SELL;
                        }
                   }
                }
            } else if (trand[i + 1 ] == SIGNAL_SELL) {
                 if (sellPrice < High[i + 1 ]) {
                   trand[i] = SIGNAL_SELL;
                } else {
                     for (j = 2 ; j <= period; j++) {
                         if (sellPrice < High[i + j]) {
                           trand[i] = SIGNAL_SELL;
                           break ;
                        } else {
                           trand[i] = SIGNAL_BUY;
                        }
                   }
                }
            }   
        }

         if (trand[i] == SIGNAL_SELL) { //RED BAR 
            bufferRed1[i]  = High[i];
            bufferGreen1[i] = Low[i]; 
            bufferRed2[i]  = MathMax (Open[i], Close[i]); 
            bufferGreen2[i] = MathMin (Open[i], Close[i]);   
        } else if (trand[i] == SIGNAL_BUY)  {
            bufferRed1[i]  = Low[i];
            bufferGreen1[i] = High[i]; 
            bufferRed2[i]  = MathMin (Open[i], Close[i]);  
            bufferGreen2[i] = MathMax (Open[i], Close[i]);    
        } 
    }
}
 
Kirill875 :

당신은 이것을 의미 했습니까?

또한 이 Buff8[i]=iMA(NULL,60,Period1, sh 0 ,MODE_SMA,PRICE_CLOSE, sh );

그리고 임베드 코드를 사용하십시오.

 
Roman_Bryansk :

팁 고마워. 그래서 메시지가 잘 안 보인다는 생각이 들었다. 알겠습니다. 메시지를 수정하고 있습니다.

메시지 오른쪽 하단에 "삭제"와 "편집"이라는 마법의 옵션이 있습니다. 새 메시지로 같은 것을 쓸 필요가 없으며 거기에서 수정하면 충분합니다.)
 
evillive :
코드의 경우 메시지 편집 패널 상단에 버튼이 있거나 Ctrl+Alt+M 조합이 있으며 코드가 아름답고 읽기 쉽습니다. 손실에 관해서 는 SetIndexStyle () 함수에 색상 매개변수가 있으므로 자유롭게 사용하십시오.

어렵지 않다면 더 자세히 알려주세요. 색상 및 너비 설정에서 다음과 같이 하면 됩니다.

번호 색상 너비 스타일

0 블랙 0 0

1 블랙 0 0

2. 레드 2 0

3.그린20

너비는 항상 사라집니다. 마치 항상 표준 설정으로 돌아가는 것처럼.

엄밀히 판단하지 마십시오. 분명히 나는 당신에게 주어진 것을받지 못했습니다. 이러한 메시지 2개를 컴파일하는 경우에도: 모든 제어 경로가 값을 반환하는 것은 아닙니다. SimpleBars.mq4 115 하나.

 
이해했다. 죄송합니다. 쓰레기.
 
Roman_Bryansk :

어렵지 않다면 더 자세히 알려주세요. 색상 및 너비 설정에서 다음과 같이 하면 됩니다.

번호 색상 너비 스타일

0. 블랙 0 0

..

너비는 항상 사라집니다. 마치 항상 표준 설정으로 돌아가는 것처럼.

엄밀히 판단하지 마십시오. 분명히 나는 당신에게 주어진 것을받지 못했습니다. 이러한 메시지 2개를 컴파일하는 경우에도: 모든 제어 경로가 값을 반환하는 것은 아닙니다. SimpleBars.mq4 115 하나.


 void   SetIndexStyle(
   int      index,       // номер линии
   int      type,         // тип
   int      style=EMPTY, // стиль линии
   int      width=EMPTY, // ширина линии
   color    clr= clrNONE    // цвет
   );

즉, 귀하의 경우 첫 번째 버퍼의 경우:

SetIndexStyle( 0 , DRAW_HISTOGRAM , EMPTY,width,Red);

설정이 저장되지 않으면 터미널의 데이터 디렉토리에 쓰기에 충분한 권한이 없을 수 있습니다. 이것은 시스템 파티션에 설치하고 일반 모드에서 작동할 때 발생합니다. /portable 모드에서 터미널을 실행해 보십시오(키는 터미널을 실행하기 위한 바로 가기에 기록됨).

그리고 저는 항상 모든 사용자에게 권장했으며 시스템이 아닌 파티션에 설치할 수 있는 모든 프로그램을 계속 권장할 것입니다.

 
Простите меня за наглость)
 
evillive :


즉, 귀하의 경우 첫 번째 버퍼의 경우:

설정이 저장되지 않으면 터미널의 데이터 디렉토리에 쓰기에 충분한 권한이 없을 수 있습니다. 이것은 시스템 파티션에 설치하고 일반 모드에서 작동할 때 발생합니다. /portable 모드에서 터미널을 실행해 보십시오(키는 터미널을 실행하기 위한 바로 가기에 기록되어 있습니다).

그리고 저는 항상 모든 사용자에게 권장했으며 시스템이 아닌 파티션에 설치할 수 있는 모든 프로그램을 계속 권장할 것입니다.

당신은 마술사입니다)) 나는 그것을 EMPTY 로 바꿨고 두 가지 지표에 따라 모든 것이 정상입니다. 매우 감사합니다. "/portable"에 관하여: 한 줄의 개체 설정에 등록할 때 올바른 방식으로 쓰지 않습니다.
 
Roman_Bryansk :
당신은 마술사입니다)) 나는 그것을 EMPTY 로 바꿨고 두 가지 지표에 따라 모든 것이 정상입니다. 매우 감사합니다. "/portable"에 관하여: 한 줄의 개체 설정에 등록할 때 올바른 방식으로 쓰지 않습니다.
그리고 따옴표 뒤에 키를 넣으면 됩니다.
 
Kirill875 :
컴파일 후 터미널이 멈춥니다. 어디를 입력해야 하는지 예를 들어 보여 주시겠습니까?

여기

파일:
testmtf.mq4  4 kb