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

 
Vitaly Muzichenko :

당신은 광대 이론가 의 분야에 있습니다. 그들은 거기에 그림을 그리는 것을 좋아합니다.

그리고 포럼에는 유사한 지점이 많이 있습니다. 최소한 토론하십시오!

나는 비탈리를 이해하지 못한다! - 진심이야? - 아니면 그렇게 농담하는거야?

모두가 잘 알고 있듯이 "거래 이론" 자체는 아직 자연에 존재하지 않습니다.

"엘리엇 파동", "피보나치 수", "바이어슈트라스 함수" 등이 있습니다.

그러나이 모든 것은 "거래 이론"과 아무 관련이 없습니다.

그리고 포럼 사용자, 개발자 및 거래자의 99.9999%가 가장 단순한 이동 평균 추세를 구축하는 방법을 모른다면 어떤 종류의 "거래 이론"에 대해 이야기할 수 있습니까?

그래서 그들은 "무엇이 명확하지 않습니다"와 "왜 그런지 명확하지 않습니다"를 그립니다.

-------------------------------------------------- --------------------------

예, 그리고 당신도 가장 단순한 추세를 올바르게 "그릴" 수 없습니다. - 나는 그것에 대해 확신합니다. 직설적인 점 양해 부탁드립니다. 하지만 당신은 할 수 없습니다.

하지만 반면에 당신은 CLOWNS에 대해 쉽게 이야기하고 자신이 알지 못하고 어떻게 해야 할지 모르는 것에 대해 논쟁하고 이야기합니다.

이것이 우리가 보고 있는 역설입니다.

-------------------------------------------------- --------------------------------

그러나 나를 가장 흥분시키는 것은 그것이 아니라 다른 것입니다.

저는 Forex 시장에서 수천 명의 프리랜서와 모든 종류의 학자들이 모든 사람에게 서비스를 제공하는 것을 봅니다.

어디에서나 광고. 지불 - 그들은 도울 것이고 지불하고 가르 칠 것입니다 ...

음, 알았어 - 내가 지불할게, 내가 대답해 줄게.

하지만 당신은 나에게 당신의 자격을 보여줍니다.

나를 가장 단순한 트렌드로 만들어라!!!

아직 아무도 건설하지 않았습니다. 프리랜서도, 학자도, 개발자도 아닙니다. - NOBODY.

그들은 부끄러워하는 것을 두려워합니다. 왜냐하면 그들은 할 수 없습니다. 언뜻보기에는 복잡한 것이 없습니다.

이것은 표준 절차입니다. MT4/MT5에서 사용할 수 있습니다. 가져 와서 구축 - 기술을 보여주었습니다.

하지만 아무도 없습니다. 다들 '무엇이 불분명하다', '왜 그런지 불분명하다'라고 적었다. 모두 광대입니까?

-------------------------------------------------- --------------------------------

그리고 당신은 광대 이론을 말한다!!!

여기 다른 광대들보다 누가 더 - 나도 몰라!!!

 
Artyom Trishkin :

1. 왜?

2. 무슨 일이? 그대로?

1. 왜? - 계산을 위해.

2. 무슨 일이? - 그래서 다른 숫자, Bid-buyPrice = 1.000000000000000006551e-05이고 0.00001이 아닙니다. 그리고 왜 double (Bid-buyPrice)이 0.00001 을 주나요? Bid와 buyPrice가 이미 배인 경우 올바르게 이해했다면 두 배로 캐스트해야 했습니까?

 
Andrey Sokolov :

1. 왜? - 계산을 위해.

2. 무슨 일이? - 그래서 다른 숫자, Bid-buyPrice = 1.000000000000000006551e-05이고 0.00001이 아닙니다. 그리고 왜 double (Bid-buyPrice)이 0.00001 을 주나요? Bid와 buyPrice가 이미 배인 경우 올바르게 이해했다면 두 배로 캐스트해야 했습니까?

double 숫자에 대해 연산을 수행하는 경우 명시적으로 double로 캐스팅하는 이유는 무엇입니까? 인쇄시 스트링타입으로 더블타입의 캐스트를 보여드렸습니다.

1.000000000000000006551e-05와 0.00001이 다른 숫자라고 확신합니까? 다른 출력 형식 - Comment()에서 출력 방법을 지정하지 않았으므로 터미널이 과학적 출력 형식을 대체했습니다. 이것이 내가 쓴 이유입니다. 이중에서 문자열로 명시적으로 변환하거나 원하는 정밀도로 DoubleToString()을 사용합니다.

모든 것이 도움말 에 있으며 도보 거리에 있지는 않지만 "Documentation" 메뉴에서 마우스를 클릭하기만 하면 됩니다.

다음은 도움말 에서 올바른 것으로 표시 한 것입니다.

논평

차트의 왼쪽 상단 모서리에 사용자 정의 설명을 표시합니다.

void   Comment (
    argument ,      // первое значение
   ...             // последующие значения
   );

옵션

...

【인】 쉼표로 구분된 모든 값. 줄 바꿈 문자 "\n" 또는 "\r\n"을 사용하여 출력 정보를 여러 줄로 구분할 수 있습니다. 매개변수의 수는 64개를 초과할 수 없습니다. 표시된 메시지의 총 길이(서비스 비표시 문자 포함)는 2045자를 초과할 수 없습니다(추가 문자는 출력 중에 잘림).

반환 값

반환 값 없음

메모

배열은 Comment() 함수에 전달할 수 없습니다. 배열은 요소별로 인쇄되어야 합니다.

Double 데이터는 점 뒤에 최대 16자리의 십진수로 출력되며 데이터는 전통적 형식과 과학적 형식 중 가장 간결한 표기법으로 출력할 수 있습니다. 부동 소수점 데이터는 점 뒤에 5자리 숫자로 출력됩니다. 다른 정밀도 또는 명시적으로 지정된 형식으로 실수를 표시하려면 DoubleToString() 함수를 사용해야 합니다.

bool 데이터는 "true" 또는 "false" 문자열로 출력됩니다. 날짜는 YYYY.MM.DD HH:MI:SS로 표시됩니다. 날짜를 다른 형식으로 표시하려면 TimeToString() 함수를 사용하십시오. 데이터 유형 색상은 문자열 R,G,B로 출력되거나 해당 색상이 색상 세트에 있는 경우 색상 이름으로 출력됩니다.

최적화 모드에서 전략 테스터로 작업할 때 Comment() 함수 는 실행되지 않습니다.

 
Artyom Trishkin : 1.000000000000000006551e-05와 0.00001이 다른 숫자인 것이 확실합니까? 다른 출력 형식 - Comment()에서 출력 방법을 지정하지 않았으므로 터미널이 과학적 출력 형식을 대체했습니다. 이것이 내가 쓴 이유입니다. 이중에서 문자열로 명시적으로 변환하거나 원하는 정밀도로 DoubleToString()을 사용합니다.

문제는 조건이 작동하지 않았기 때문에 발생했습니다. 여기서 변수 *Point와 이 뺄셈의 결과가 비교되고, 값이 double인 다른 변수가 값이 double인 Bid에서 빼서 빼기 결과를 다시 다음으로 줄여야 했습니다. 더블.

뺄 때 double을 입력하지 않는 이유는 무엇입니까?

도움말을 읽었는데 답이 안보여서 여기에 질문드립니다

 
Andrey Sokolov :

문제는 조건이 작동하지 않았기 때문에 발생했습니다. 여기서 변수 *Point와 이 뺄셈의 결과가 비교되고, 값이 double인 다른 변수가 값이 double인 Bid에서 빼서 빼기 결과를 다시 다음으로 줄여야 했습니다. 더블.

뺄 때 double을 입력하지 않는 이유는 무엇입니까?

도움말을 읽었는데 답이 안보여서 여기에 질문드립니다

double에서 double을 빼면 결과는 두 배가 됩니다. 이것은 분명합니다.

그러나 무엇과 무엇을 비교하고 있습니까? 오직 당신만이 압니다.

 
Artyom Trishkin :

double에서 double을 빼면 결과는 두 배가 됩니다. 이것은 분명합니다.

그러나 무엇과 무엇을 비교하고 있습니까? 오직 당신만이 압니다.

외부 이중 First_PartialTrailingStart=15;

if ( Digits() ==3 || Digits()==5) {First_PartialTrailingStart*=10; }

if(double(Bid-buyPrice)>=First_PartialTrailingStart*Point) - 작동

if((Bid-buyPrice)>=First_PartialTrailingStart*Point) - 작동하지 않음

 
Andrey Sokolov :

외부 이중 First_PartialTrailingStart=15;

if (Digits() ==3 || Digits()==5) {First_PartialTrailingStart*=10; }

if(double(Bid-buyPrice)>=First_PartialTrailingStart*Point) - 작동

if((Bid-buyPrice)>=First_PartialTrailingStart*Point) - 작동하지 않음

모든 것이 작동합니다. 스크립트:

 //+------------------------------------------------------------------+
//|                                                  TestCompare.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link        "https://mql5.com/ru/users/artmedia70"
#property version    "1.00"
#property script_show_inputs
#define   Bid        SymbolInfoDouble ( Symbol (), SYMBOL_BID )
//--- input parameters
input uint      InpFirstPartialTrailingStart  =   15 ;   // Старт трала через (пунктов)
input uint      InpMultiplier                 =   10 ;   // Множитель пунктов
input int       InpPriceShift                 =   20 ;   // Отступ цены Buy от Bid
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
double part_trailing_start= double (InpFirstPartialTrailingStart< 1 ? 1 : InpFirstPartialTrailingStart);
double multiplier= double (InpMultiplier< 1 ? 1 : InpMultiplier);
double value=part_trailing_start*multiplier* Point ();
double shift=InpPriceShift* Point ();
double buy_price= Bid -shift;
//---
   double res= NormalizeDouble ( Bid -buy_price, Digits ());
   bool    cmp= NormalizeDouble (res-value, Digits ())>= 0 ;
   Alert
     (
       "Старт трала через " ,( string )value, " пп."
       ", Цена Bid=" ,( string ) Bid ,
       ", цена Buy=" ,( string )buy_price,
       ", Bid-цена Buy=" , DoubleToString (res, Digits ()),
       ", Bid-buy_price>=value: " , string (cmp)
     );
//---
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin :

모든 것이 작동합니다. 스크립트:

고마워, 나는 그것을 조사할 것이다

 
마지막 틱 에서 양초의 종가 를 얻을 수 있습니까?
 
Andrey Sokolov :
마지막 틱 에서 양초의 종가 를 얻을 수 있습니까?
입찰가격입니다. 또 다른 질문: 이 특정 틱이 마지막 틱인지 어떻게 압니까?