코딩 도움말 - 페이지 722

 
Tigra :


이 표시기에서 4자리 따옴표를 사용할 때 몇 가지 문제가 있습니다. 근데 그게 중요한게 아니라 4자리에서 100레벨까지의 스케일이 문제인데, 사진을 보여주려고 했더니, 적시에 보는게 눈이 많이 뻑뻑합니다(며칠 지나면 실처럼 스케일을 바꾸는게 40 수준으로 - 현재 값을 나타내는 텍스트의 오른쪽 모서리와 히스토그램을 보는 것이 더 나을까요?

Оставлю оригинальный текст на русском, тк возможны искажения при переводе(

У этого индикатора есть некоторые проблемы при использовании 4 значных котировок. Но это не критично, самая проблемы это масштабирование на 4 значном до уровня 100, постарался показать на картинках, разглядывать нужный момент весьма напрягает глаза( после нескольких дней, можно ли как нить поменять масштаб до уровня 40 - что бы лучше было видно гистограммы и в правом углу текстом что бы обозначалось текущее значение? Еще не могу понять почему понявляют

리페인터 아닌가요?
 

믈라덴,

저는 MT5로 일하고 있습니다.

"단순한 후행 기능 "이 있는데 "계단 후행"으로 변환해야 합니다. 팁을 줄 수 있습니까?

내가 가지고 있는 EA에서
====================
"후행" 입력(포인트별)

=> 예:
후행: 4000(4점)
(이전 방법) 가격이 책정된 경우 4포인트 이동 손절매 4포인트

하지만 수정해야 합니다

====================
"점으로 후행(거리)" 입력
"포인트의 후행(단계)" 입력

=> 예:
후행 거리: 4000(4점)
후행 단계: 1500(1,5점)

(새로운 방법) 가격이 매겨진 경우 4포인트 이동 손절매 1,5포인트

//+------------------------------------------------------------------+
//| Simple Trailing function                                         |
//+------------------------------------------------------------------+
void fSimpleTrailing(){
   if (Trailing<= 0 ){
       return ;
   }        
   if (!Pos.Select( _Symbol )){
       return ;
   }        
   if (!Sym. RefreshRates ()){
       return ;  
   }  
   double nsl,tmsl,psl;  
   switch (Pos.PositionType()){
       case POSITION_TYPE_BUY :
         nsl=Sym.NormalizePrice(Sym. Bid ()- _Point *Trailing);
             if (nsl>=Sym.NormalizePrice(Pos.PriceOpen())){
               if (nsl>Sym.NormalizePrice(Pos.StopLoss())){
                  tmsl=Sym.NormalizePrice(Sym. Bid ()- _Point *Sym.StopsLevel());
                     if (nsl<tmsl){
                        Trade.PositionModify( _Symbol ,nsl,Pos.TakeProfit());
                     }
               }
            }
       break ;
       case POSITION_TYPE_SELL :
         nsl=Sym.NormalizePrice(Sym. Ask ()+ _Point *Trailing);
             if (nsl<=Sym.NormalizePrice(Pos.PriceOpen())){
               psl=Sym.NormalizePrice(Pos.StopLoss());
                   if (nsl<psl || psl== 0 ){
                     tmsl=Sym.NormalizePrice(Sym. Ask ()+ _Point *Sym.StopsLevel());
                         if (nsl>tmsl){
                           Trade.PositionModify( _Symbol ,nsl,Pos.TakeProfit());
                        }
                  }
            }      
       break ;
   }
}
 
nbtrading :
리페인터 아닌가요?

예, 그는 설명합니다. 그러나 이 지표에서 색상은 중요 하지 않습니다. 저에게는 매우 좋은 결과를 보여줍니다.
 
baraozemo :

믈라덴,

저는 MT5로 일하고 있습니다.

"단순한 후행 기능"이 있는데 "계단 후행"으로 변환해야 합니다. 팁을 줄 수 있습니까?

내가 가지고 있는 EA에서
====================
"후행" 입력(포인트별)

=> 예:
후행: 4000(4점)
(이전 방법) 가격이 책정된 경우 4포인트 이동 손절매 4포인트

하지만 수정해야 합니다

====================
"포인트 단위의 후행(거리)" 입력
"포인트의 후행(단계)" 입력

=> 예:
후행 거리: 4000(4점)
후행 단계: 1500(1,5점)

(새로운 방법) 가격이 매겨진 경우 4포인트 이동 손절매 1,5포인트

//+------------------------------------------------------------------+
//| Simple Trailing function                                         |
//+------------------------------------------------------------------+
void fSimpleTrailing(){
   if (Trailing<= 0 ){
       return ;
   }        
   if (!Pos.Select( _Symbol )){
       return ;
   }        
   if (!Sym. RefreshRates ()){
       return ;  
   }  
   double nsl,tmsl,psl;  
   switch (Pos.PositionType()){
       case POSITION_TYPE_BUY :
         nsl=Sym.NormalizePrice(Sym. Bid ()- _Point *Trailing);
             if (nsl>=Sym.NormalizePrice(Pos.PriceOpen())){
               if (nsl>Sym.NormalizePrice(Pos.StopLoss())){
                  tmsl=Sym.NormalizePrice(Sym. Bid ()- _Point *Sym.StopsLevel());
                     if (nsl<tmsl){
                        Trade.PositionModify( _Symbol ,nsl,Pos.TakeProfit());
                     }
               }
            }
       break ;
       case POSITION_TYPE_SELL :
         nsl=Sym.NormalizePrice(Sym. Ask ()+ _Point *Trailing);
             if (nsl<=Sym.NormalizePrice(Pos.PriceOpen())){
               psl=Sym.NormalizePrice(Pos.StopLoss());
                   if (nsl<psl || psl== 0 ){
                     tmsl=Sym.NormalizePrice(Sym. Ask ()+ _Point *Sym.StopsLevel());
                         if (nsl>tmsl){
                           Trade.PositionModify( _Symbol ,nsl,Pos.TakeProfit());
                        }
                  }
            }      
       break ;
   }
}
가격이 다음과 비교하여 움직인 경우: 무엇?
 
mladen :
가격이 다음과 비교하여 움직인 경우: 무엇?

가지고있는 기능 을 호출하기 전에

가격이 "성장"하는 경우 "거리"를 포인트로 확인합니다. "거리"와 일치하면 단계(포인트)를 사용하여 손절매를 이동합니다.

예시:

손절매 = 8000
후행 거리 = 4000
후행 단계 = 2000

당신은 가격 10000에 구입

이제 가격은 14000(후행 거리 목표 도달=4000) 입니다. 이제 손절매를 6000(8000 - 후행 단계)으로 이동해야 합니다.

이제 가격은 18000(후행 거리 목표 도달=4000)입니다. 이제 손절매를 2000(6000 - 후행 단계)으로 이동해야 합니다.

이제 가격은 22000(후행 거리 목표 도달=4000)입니다. 이제 손절매를 "입구" + 2000(2000 - 후행 단계 =-2000)으로 이동해야 합니다.

이제 가격은 24000(후행 거리 목표 도달=4000)입니다. 이제 손절매를 "입구" + 6000(-2000 - 후행 단계 =-6000)으로 이동해야 합니다.

 
baraozemo :

가지고있는 기능을 호출하기 전에

가격이 "성장"하는 경우 "거리"를 포인트로 확인합니다. "거리"와 일치하면 단계(포인트)를 사용하여 손절매를 이동합니다.

예시:

손절매 = 8000
후행 거리 = 4000
후행 단계 = 2000

당신은 가격 10000에 구입

이제 가격은 14000(후행 거리 목표 도달=4000) 입니다. 이제 손절매를 6000(8000 - 후행 단계)으로 이동해야 합니다.

이제 가격은 18000(후행 거리 목표 도달=4000)입니다. 이제 손절매를 2000(6000 - 후행 단계)으로 이동해야 합니다.

이제 가격은 22000(후행 거리 목표 도달=4000)입니다. 이제 손절매를 "입구" + 2000(2000 - 후행 단계 =-2000)으로 이동해야 합니다.

이제 가격은 24000(후행 거리 목표 도달=4000)입니다. 이제 손절매를 "입구" + 6000(-2000 - 후행 단계 =-6000)으로 이동해야 합니다.

예, 하지만 기록하지 않은 경우(보통 손절매 또는 이익실현 가격의 경우: 변경되면 다른 변경의 기준이 되기 시작합니다) 변수에 해당 항목을 포함해야 합니다. 오류 증거 이외의 모든 것. 당신이 시도하는 것은 코드로 반복할 수 없거나 각각의 모든 경우에 대해 해당 정류장을 하드 코딩해야 하므로 하드 코딩된 가격과 정확히 동일하지 않은 공개 가격에는 사용할 수 없습니다.
 

안녕,

화살표를 그리는 함수 를 작성하고 싶습니다. 나는 화살표뜨고 싶습니다 . 어떤 아이디어라도? :)

void DrawArrow(string name, int IdSymbol, int x, int y, int width, int corner, color clr)
{
   ObjectCreate(0,name,OBJ_ARROW,0,0,0,0,0);
      ObjectSetInteger(0,name,OBJPROP_ARROWCODE,IdSymbol);
      ObjectSetInteger(0,name,OBJPROP_CORNER,corner);
      ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
      ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
      ObjectSetInteger(0,name,OBJPROP_WIDTH,width);
      ChartRedraw(0);
}

 
mladen :
예, 하지만 기록하지 않은 경우(보통 손절매 또는 이익실현 가격의 경우: 변경되면 다른 변경의 기준이 되기 시작합니다) 변수에 해당 항목을 포함해야 합니다. 오류 증명 이외의 모든 것. 당신이 시도하는 것은 코드로 반복할 수 없거나 각각의 모든 경우에 대해 해당 정류장을 하드 코딩해야 하므로 하드 코딩된 가격과 정확히 동일하지 않은 공개 가격에는 사용할 수 없습니다.

안녕하세요 mladen님

여기 sample-ea가 있습니다.

파일:
sample-ea.mq5  36 kb
 
Tartut :

안녕,

화살표를 그리는 함수를 작성하고 싶습니다. 나는 화살표뜨고 싶습니다 . 어떤 아이디어라도? :)

void DrawArrow(string name, int IdSymbol, int x, int y, int width, int corner, color clr)
{
   ObjectCreate(0,name,OBJ_ARROW,0,0,0,0,0);
      ObjectSetInteger(0,name,OBJPROP_ARROWCODE,IdSymbol);
      ObjectSetInteger(0,name,OBJPROP_CORNER,corner);
      ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
      ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
      ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
      ObjectSetInteger(0,name,OBJPROP_WIDTH,width);
      ChartRedraw(0);
}

"떠있는"화살표는 무엇을 의미합니까?

추신: 화살표 개체 는 x 및 y 좌표 또는 모서리를 사용하지 않습니다. 그들은 시간과 가격을 사용하고 있습니다.

 

안녕하세요 mladen 씨

MTF를 만들어주세요

관심

파일: