MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 741

 
psyman :

다음 코드의 경우 그림의 이야기:


네트워크 연결 해제, 표시기 추가

다음 차트로 전환


y2 값이 변경되면 다시 돌아갑니다.


y2가 값을 반환했지만 레이블은 "왼쪽" 값에 따라 계산되었습니다! 마우스 휠 돌리기

라벨이 돌아왔습니다!

인접 차트로 전환하는 순간 모든 비활성 창은 전체 화면으로 최대화되지 않습니다. 즉, 활성 상태보다 작습니다. 따라서 개체 는 그래프의 왼쪽 상단 모서리 에서 더 작은 좌표를 받습니다. 그런 다음 창을 활성화한 후 일정이 업데이트될 때까지 기다리거나 강제로 업데이트해야 합니다. 휠을 스크롤하면 어떻게 됩니까?

 
psyman :

다음 코드의 경우 그림의 이야기:


네트워크 연결 해제, 표시기 추가

다음 차트로 전환


y2 값이 변경되었습니다. 다시 돌아갑니다.


y2가 값을 반환했지만 레이블은 "왼쪽" 값에 따라 계산되었습니다! 마우스 휠 돌리기

라벨이 돌아왔습니다!

ChartTimePriceToXY 를 버릴 수 있습니다.
미래에 일반 텍스트( OBJ_TEXT ) + 1-3 바를 인쇄합니다. 항상 필요한 곳에 있을 것입니다.

 
Taras Slobodyanik :

ChartTimePriceToXY 를 버릴 수 있습니다.
미래에 일반 텍스트( OBJ_TEXT ) + 1-3 바를 인쇄합니다. 항상 필요한 곳에 있을 것입니다.

막대를 오른쪽으로 이동하는 것을 끄면 텍스트가 창 밖에 표시됩니다.

아이디어는 정확하지만 분명히 경험이 매우 부족합니다.

 
Alexey Viktorov :

막대를 오른쪽으로 이동하는 것을 끄면 텍스트가 창 밖에 표시됩니다.

아이디어는 정확하지만 분명히 경험이 매우 부족합니다.

레이블을 오른쪽에 연결해야 하는 경우 차트에서 가장 오른쪽에 있는 막대를 가져와서 그 위에 그리면 됩니다.

 

안녕하세요 .
Expert Advisor에서 전역 유형의 변수를 생성하여 새 함수를 호출할 때 이 데이터가 0으로 재설정되지 않도록 하는 방법을 알려주실 수 있습니까?

다음을 통해 변수 데이터를 호출합니다.

 bool    GlobalVariableGet ( string    "name" , double "var"   ); // К примеру

그런 다음 "var"를 작업에 삽입할 수 있습니다.

그리고 그것들은 함수에 의해 생성됩니다:

 datetime    GlobalVariableSet ( 
   string   name,       // имя 
   double   value       // устанавлимое значение 
   );

나는 단지 모든 것을 이해하려고 노력할 뿐입니다. 예는 없지만 한 값이 datetime 이고 두 번째 값이 bool 인 경우 데이터가 어떻게 작동하는지 완전히 명확하지 않습니다. 실수는 없을까요?

 
psyman :

다음 코드의 경우 그림의 이야기:

네트워크 연결 해제, 표시기 추가

다음 차트로 전환

y2 값이 변경되었습니다. 다시 돌아갑니다.

y2가 값을 반환했지만 레이블은 "왼쪽" 값에 따라 계산되었습니다! 마우스 휠 돌리기

라벨이 돌아왔습니다!

 //+------------------------------------------------------------------+
//|                                              !_clr_indicator.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property indicator_chart_window
#property indicator_plots 0

string objname= "Bid" ;
input color Bid_color = clrCrimson ;

//+------------------------------------------------------------------+
int OnInit ()
  {
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
void OnDeinit ( const int reason) 
   { 
   ObjectDelete ( 0 ,objname);
   } 
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
{
   SetTXT();
   return (rates_total);
}

//+------------------------------------------------------------------+
void OnChartEvent ( const int id, const long &lparam, const double &dparam, const string &sparam) 
{ 
   if (id== CHARTEVENT_CHART_CHANGE ) 
      SetTXT();
}

//+------------------------------------------------------------------+
void SetTXT() 
{
int       first_bar=( int ) ChartGetInteger ( 0 , CHART_FIRST_VISIBLE_BAR , 0 );
int       width_bar=( int ) ChartGetInteger ( 0 , CHART_WIDTH_IN_BARS , 0 );
double    label_price= iClose ( _Symbol , _Period , 0 );
datetime label_time= 0 ;

   if (width_bar>first_bar)
      label_time= iTime ( _Symbol , _Period , 1 )+(width_bar-first_bar)* PeriodSeconds ();
   else
      label_time= iTime ( _Symbol , _Period ,first_bar-width_bar+ 1 );

   if ( ObjectFind ( 0 ,objname)< 0 )
      {
       ObjectCreate ( 0 , objname, OBJ_TEXT , 0 , 0 , 0 );
       ObjectSetInteger ( 0 , objname, OBJPROP_FONTSIZE , 12 );
       ObjectSetInteger ( 0 , objname, OBJPROP_COLOR , Bid_color);
       ObjectSetString ( 0 , objname, OBJPROP_FONT , "Verdana" );
       ObjectSetInteger ( 0 ,objname, OBJPROP_ANCHOR , ANCHOR_RIGHT_UPPER );
       ObjectSetInteger ( 0 ,objname, OBJPROP_BACK , false );
       ObjectSetInteger ( 0 ,objname, OBJPROP_SELECTABLE , false );
      }
   
   ObjectSetString ( 0 ,objname, OBJPROP_TEXT , DoubleToString (label_price, _Digits - 1 )); 
   ObjectMove ( 0 ,objname, 0 ,label_time,label_price);
   
   ChartRedraw ();
}
 
Taras Slobodyanik :


대단히 감사합니다. 내일 iTime과 iClose 를 교체하는 방법에 대해 생각할 것입니다. 아마도 XP에 앉아 있을 것입니다.

 
모두에게 좋은 하루!
프로그래머를 위한 질문입니다.
말해주세요!
일부 중개인은 이익실현 가격과 손절매 가격으로 시장가 주문을 열 수 없습니다.

단 하나의 OrderSend() 함수 로.

또는 오히려 OrderSend()가 주문을 열지만 중지 및 이익 가격은 이 순서가 아닙니다.

다음 코드 줄의 이 주문은 OrderModify()를 사용하여 수정하고 중지 및 이익 주문에 추가해야 합니다.


따라서 문제는 구매 또는 판매 기능에서 케이스를 누가, 어떻게 처리하거나 보장하는지입니다.
예를 들어 OrderSend()가 작동했지만 어떤 이유로 OrderModify()가 시장에서 작동하지 않을 때
정지와 이익이 없는 오픈 주문으로 밝혀졌습니까?

그러한 경우에 대해 어떻게 보장하고/또는 어떻게 처리합니까?
말해 주세요.
충분히 소비했기 때문에 읽을 곳이나 코드가 거짓말 할 곳을 찌를 수 있습니다.

시간이지만 그것에 대한 정보를 찾을 수 없습니다.

손익분기점 기능은 가격이 이익이 되더라도 어느 정도 보험을 만들 수 있을 것 같습니다.

가격이 손실되고 단순히 멈출 수 없다면?

답변에 미리 감사드립니다!
 

여러분, 안녕하세요!

Expert Advisor가 실행 중일 때 속성을 입력할 수 없는 이유를 알려주시겠습니까? 가곤 했는데 지금은 속성이 안 열리네요. 터미널을 다시 시작하면 한 번 도움이 되었지만 문제는 1분 후에 다시 나타났습니다. 고문은 신선하고 터미널도 최근에 작동합니다. 고문의 속성에 어떤 문제가 있습니까?

고맙습니다!

 
demonRDV :

여러분, 안녕하세요!

Expert Advisor가 실행 중일 때 속성을 입력할 수 없는 이유를 알려주시겠습니까? 가곤 했는데 지금은 속성이 안 열리네요. 터미널을 다시 시작하면 한 번 도움이 되었지만 문제는 1분 후에 다시 나타났습니다. 고문은 신선하고 터미널도 최근에 작동합니다. 고문의 속성에 어떤 문제가 있습니까?

고맙습니다!

단축키 F7을 누르세요 :-)

조언자 아이콘을 클릭해도 항상 작동하는 것은 아니며 아이콘이 다른 개체에 의해 차단될 수 있으며 조언자가 메시지 대기열 및 다른 100500 이유를 로드합니다.