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

 

친구 여러분, 5자리 가격을 표시하려면 어떻게 해야 합니까? 예를 들어 다음과 같이 쓰고 있습니다.

int Quant_Bars=15;

int Ind_max = ArrayMaximum (High,Quant_Bars,1);

double Maximum=High[Ind_max];

Alert("Максимум = ",Maximum);

소수점 이하 네 자리까지 가격이 표시됩니다.

미리 감사드립니다))

 
rid >> :

코드에서 이 기능을 어디에 넣습니까?

작성 초기 단계에 코드가 있어서.. 그래서 정말 삽입할 곳이 없습니다....

마법의 숫자로 숫자와 차수를 계산하는 방법을 유치하게 설명해 주시겠습니까?))


 
Alex5757000 писал(а) >>

친구 여러분, 5자리 가격을 표시하려면 어떻게 해야 합니까? 예를 들어 다음과 같이 쓰고 있습니다.

int Quant_Bars=15;

int Ind_max = ArrayMaximum (High,Quant_Bars,1);

double Maximum=High[Ind_max];

Alert("Максимум = ",Maximum);

소수점 이하 네 자리까지 가격이 표시됩니다.

미리 감사드립니다))

DoubleToStr()을 사용해 보셨습니까?

 
ArtY0m писал(а) >>

작성 초기 단계에 코드가 있어서.. 그래서 정말 삽입할 곳이 없습니다....

마법의 숫자로 숫자와 차수를 계산하는 방법을 유치하게 설명해 주시겠습니까?))


여기를 보는 가장 쉬운 방법은 https://book.mql4.com/ru/ 입니다.

 

도와주세요. 젠장 이해가 안가네요.

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

왜요?

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

파일:
pack_1.rar  2 kb
 
나는 그것을 찾을 수 없습니다. 어딘가에 더 어린 것의 차트에서 더 높은 시간대의 양초를 그리는 지표에 대한 링크가 있었습니다(즉, 두 차트의 양초가 동시에). 누가 말할 것인가?
 
ArtY0m >> :

작성 초기 단계에 코드가 있어서.. 그래서 정말 삽입할 곳이 없습니다....

마법의 숫자로 숫자와 차수를 계산하는 방법을 유치하게 설명해 주시겠습니까?))


Expert Advisor(가장 간단한 버전)는 여러 부분으로 구성됩니다.

먼저 외부 매개변수와 전역 매개변수를 설정합니다. 변수.

도움말, 일반적으로 초기화로 이동합니다. 및 초기화 해제. 기능

그런 다음 Expert Advisor의 주요 작업 알고리즘이 설정되는 START 기능이 제공됩니다.

또한 보조 사용자 정의 기능이 있습니다.

이러한 사용자 정의 함수는 필요에 따라 START 함수에서 사용(호출)됩니다.

이와 같이:

 //+------------------------------------------------------------------+
//|                                                    ZZ expert.mq4 |
//|                                        Copyright © 2008, Rid     |
//|                                            Rid                   |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Rid ."
#property link      "Rid "

extern string     _  = "---- ОБЩИЕ ПАРАМЕТРЫ -----" ; 
extern int       MAGIC = 777 ;
extern double    lots = 0.1 ;

extern string     __  = "---- ПАРАМЕТРЫ BUY -----" ; 
extern int       StopLossBuy = 110 ;
extern int       TakeProfitBuy = 55 ;

extern string     ___  = "---- ПАРАМЕТРЫ SELL -----" ; 
extern int       StopLossSell = 110 ;
extern int       TakeProfitSell = 55 ;

extern string    _____ = "Параметры функции ТРЕЙЛИНГ СТОП" ;
extern bool   UseTrailing = true ; //Выключатель трейлинг стопа
extern int    MinProfit = 25 ;    //порог включения трейлин стопа
extern int    TrailingStop = 25 ; // величина трейлинг стопа
extern int    TrailingStep = 5 ; // шаг трейлинг стопа


int ticket ;
bool  gbDisabled  = False ;             // Флаг блокировки советника
bool  gbNoInit    = False ;             // Флаг неудачной инициализации
//-- Подключаемые модули --
#include <stderror.mqh>
#include <stdlib.mqh>

//+------------------------------------------------------------------+
//| initialization function                                          |
//+------------------------------------------------------------------+
int init ( )
  {
gbNoInit = False ;  
if ( ! IsTradeAllowed ( ) ) {
    Message ( "Для нормальной работы советника необходимо \n " +
            "Разрешить советнику торговать" ) ;
    gbNoInit = True ; return ;
  }
  if ( ! IsLibrariesAllowed ( ) ) {
    Message ( "Для нормальной работы советника необходимо \n " +
            "Разрешить импорт из внешних экспертов" ) ;
    gbNoInit = True ; return ;
  }
  }

//жжжжжжжжжжжжж ФУНКЦИЯ СТАРТ жжжжжжжжжжжжжжжжжж+

int start ( )
  {
//Отображаем на графике число открытых позиций
// с задааным магиком "MAGIC"
Comment ( "Число бай позиций = " , NumberOfPositions ( NULL , OP_BUY , MAGIC ) , " \n " ,
"Число селл позиций = " , NumberOfPositions ( NULL , OP_SELL , MAGIC ) , " \n " ,
"Хи-Хи, тра-ля-ля" ) ;

if ( UseTrailing ) TrailPositions ( ) ; // выключатель трейлинг стопа 
  
//-------- открываем позиции 
if ( NumberOfPositions ( NULL , OP_BUY , MAGIC ) < 1 ) { //если нет открытыз бай-поз
//открываем позицию бай:
ticket = OrderSend ( Symbol ( ) , OP_BUY , lots , Ask , 3 , Ask - Point * StopLossBuy ,
Ask + Point * TakeProfitBuy , "Хи-Хи, тра-ля-ля" , MAGIC , 0 , Blue ) ;
                                             } 
//--------------------------------------------------------------
    return ( 0 ) ; //конец функции int start()
  }
//жжжжжжжжжжж КОНЕЦ ФУНКЦИИ СТАРТ жжжжжжжжжжжжжжжж+


//жжжжжжж ПОЛЬЗОВАТЕЛЬСКИЕ ФУНКЦИИ жжжжжжжжжжжжжжж+
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает количество позиций.                                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int NumberOfPositions ( string sy = "" , int op = - 1 , int mn = - 1 ) {
  int i , k = OrdersTotal ( ) , kp = 0 ;

  if ( sy = = "0" ) sy = Symbol ( ) ;
  for ( i = 0 ; i < k ; i + + )                                    {
    if ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) )      {
      if ( OrderSymbol ( ) = = sy | | sy = = "" )                   {
        if ( OrderType ( ) = = OP_BUY | | OrderType ( ) = = OP_SELL ) {
          if ( op < 0 | | OrderType ( ) = = op )                   {
            if ( mn < 0 | | OrderMagicNumber ( ) = = mn ) kp + + ;
          } } } } }  return ( kp ) ; }

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж+
void TrailPositions ( ) // функция трейлинг стоп
{
  int Orders = OrdersTotal ( ) ;
  for ( int i = 0 ; i < Orders ; i + + ) {
    if ( ! ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES ) ) ) continue ;
    if ( OrderSymbol ( ) ! = Symbol ( ) ) continue ;    
     if ( OrderType ( ) = = OP_BUY & & OrderMagicNumber ( ) = = MAGIC )  {
      if ( Bid - OrderOpenPrice ( ) > MinProfit * Point ) {
        if ( OrderStopLoss ( ) < Bid - ( TrailingStop + TrailingStep - 1 ) * Point ) {
          OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , Bid - TrailingStop * Point ,
                                                     OrderTakeProfit ( ) , 0 , Blue ) ;
        } } }
    if ( OrderType ( ) = = OP_SELL & & OrderMagicNumber ( ) = = MAGIC )  {
      if ( OrderOpenPrice ( ) - Ask > MinProfit * Point ) {
        if ( OrderStopLoss ( ) > Ask + ( TrailingStop + TrailingStep - 1 ) * Point 
                                                       | | OrderStopLoss ( ) = = 0 ) {
          OrderModify ( OrderTicket ( ) , OrderOpenPrice ( ) , Ask + TrailingStop * Point ,
                                                      OrderTakeProfit ( ) , 0 , Blue ) ;
        } } }      } }

//+----------------------------------------------------------------------------+
//|  Вывод сообщения в коммент и в журнал                                      |
//+----------------------------------------------------------------------------+
void Message ( string m ) {
  Comment ( m ) ;
  if ( StringLen ( m ) > 0 ) Print ( m ) ;
}        

나는 이제 당신이 이런 종류의 질문을 하지 않기를 바랍니다!

 

한 가지 더 질문: 현재 가격이 아닌 오픈 포지션 에서 보류 주문을 설정할 수 있습니까?

미리 감사드립니다)

 

물론 가능합니다. DC 규칙에 따른 정지 수준이 준수되도록 이 지연이 현재 가격에서 그러한 거리에 서도록 하기만 하면 됩니다.

예를 들어, 보류 상태가 마지막 위치의 시작 가격에서 100포인트 떨어진 위치에 있지만 동시에 현재 가격에 너무 가깝게 떨어지는 경우 로그는 주문 시작에 대한 오류 130 을 반환합니다.

 
rid >> :

물론 가능합니다. DC 규칙에 따른 정지 수준이 준수되도록 이 지연이 현재 가격에서 그러한 거리에 서도록 하기만 하면 됩니다.

예를 들어, 보류 상태가 마지막 위치의 시작 가격에서 100포인트 떨어진 위치에 있지만 동시에 현재 가격에 너무 가깝게 떨어지는 경우 로그는 주문 시작에 대한 오류 130 을 반환합니다.

비밀이 아니라면 어떻게?

사유: