초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 573

 
Andrey Koldorkin :

나는 그것을 알아 내려고 노력할 것입니다. 고맙습니다.

별말씀을요. 모든 최고값은 단순히 어레이에 저장되고 어레이에 저장된 모든 데이터는 루프의 로그에 인쇄됩니다.

이 스크립트가 필요한 작업을 정확히 수행할 필요는 전혀 없습니다. 배열에 데이터를 저장하는 원리를 보여줍니다.

 
Artyom Trishkin :

별말씀을요. 모든 최고값은 단순히 어레이에 저장되고 어레이에 저장된 모든 데이터는 루프의 로그에 인쇄됩니다.

이 스크립트가 필요한 작업을 정확히 수행할 필요는 전혀 없습니다. 배열에 데이터를 저장하는 원리를 보여줍니다.

그것이 바로 내가 찾던 것입니다. 내가 선택한 기간 동안 어떻게든 데이터를 배열에 저장해야 했습니다. 이 부분을 이해했습니다.

이제 어레이에 기록된 데이터에 액세스하고 서로 비교하는 방법에 대한 질문이 있습니다.

여기에서 반복이 끝났고 배열이 단계별로 기록되었음을 알 수 있습니다. 이것은 좋은 것입니다. 그러나 이제 요소를 서로 비교할 필요가 있습니다.

새로운 반복 횟수를 선언해야 합니까? 이미 어떻게 든 데이터를 추출하고 비교합니까? 그러나 이것은 다시 결과를 기록하는 곳이고 ... 결국 모든 것이 반복됩니다.

대략적으로 비교 기간이 5-7개의 양초인 경우 첫 번째 양초를 다른 6번째 양초와 비교한 다음 두 번째 양초 등을 비교해야 합니다. 두 개 이상의 양초가 동일한 High 값을 갖는 경우 먼저 이 고점을 계산해야 하고 두 번째로 이 양초에서 최저 저점이 있는 양초를 찾아야 합니다. 저것들. 결과적으로 모든 매개변수를 추출하려면 특정 양초에 액세스해야 합니다.

이 작업을 수행하는 것도 가능합니까?

 
Andrey Koldorkin :

그것이 바로 내가 찾던 것입니다. 내가 선택한 기간 동안 어떻게든 데이터를 배열에 저장해야 했습니다. 이 부분을 이해했습니다.

이제 어레이에 기록된 데이터에 액세스하고 서로 비교하는 방법에 대한 질문이 있습니다.

여기에서 반복이 끝났고 배열이 단계별로 기록되었음을 알 수 있습니다. 이것은 좋은 것입니다. 그러나 이제 요소를 서로 비교할 필요가 있습니다.

새로운 반복 횟수를 선언해야 합니까? 이미 어떻게 든 데이터를 추출하고 비교합니까? 그러나 이것은 다시 결과를 기록하는 곳이고 ... 결국 모든 것이 반복됩니다.

대략적으로 비교 기간이 5-7개의 양초인 경우 첫 번째 양초를 다른 6번째 양초와 비교한 다음 두 번째 양초 등을 비교해야 합니다. 두 개 이상의 양초가 동일한 High 값을 갖는 경우 먼저 이 고점을 계산해야 하고 두 번째로 이 양초에서 최저 저점이 있는 양초를 찾아야 합니다. 저것들. 결과적으로 모든 매개변수를 추출하려면 특정 양초에 액세스해야 합니다.

이것이 가능합니까?

다음은 저장된 배열의 폴링이며 모든 저장된 데이터를 로그에 출력합니다.

 for ( int i= 0 ; i< ArrayRange (mass_high, 0 ); i++) {
   printf ( "Время: %s, High: %.5f" , TimeToString (( int )mass_high[i][ 1 ], TIME_DATE | TIME_MINUTES ),mass_high[i][ 0 ]);
   }

작업을 지정해 보겠습니다.

저장된 배열에서 찾을 필요가 있습니다 ... 정확히 무엇입니까?

 
Artyom Trishkin :

다음은 저장된 배열의 폴링이며 모든 저장된 데이터를 로그에 출력합니다.

작업을 지정해 보겠습니다.

저장된 배열에서 찾을 필요가 있습니다 ... 정확히 무엇입니까?

모든 닫힌 양초에 대한 데이터 배열을 작성해야 합니다(즉, 현재 값은 고려하지 않음) - 설정에 지정된 기간 동안 높음, 낮음, 열기, 닫기 양초(4개 매개변수). - 그것은이다.

다음으로 매개변수를 비교해야 합니다. 검색 기간을 10개의 양초로 설정합니다. 여기에서 10개의 양초 기간 동안 모든 고점을 확인해야 합니다. 두 개 이상의 일치 항목이 있으면 다음을 반환합니다.

1. 깃발 - "성냥이 있습니다".

1. 양초에 대해 동일한 값이 발견된 높은 값.

2. 당신이 그것들을 참조하고 그것들에 대한 저가, 종가, 시가 매개변수를 찾을 수 있도록 이 양초의 번호.

일반적으로 이 중 대부분은 수행 방법이 명확합니다.

레벨을 형성하는 캔들을 구체적으로 어떻게 언급해야 하는지는 명확하지 않습니다. 이론적으로 재계산 시 반복 횟수(i)를 기억하는 것이 가능하지만 먼저 로그가 기록되는 재계산이 있으므로 적용할 수 없습니다.

그리고 로그 항목이 출력되는 방식의 변형에서 - 여기에서도 필요한 것은 아닙니다.

나는 먼저 양초 1을 가져와 다른 9개와 비교해야 한다는 것을 대략적으로 이해합니다. 일치하는 항목이 있으면 이 양초의 수와 매개변수를 분리하고 확인란을 켭니다. 다음으로 나머지로 양초 2를 확인하고 샘플의 중간까지 계속 확인하십시오. 그러면 반대쪽에서만 중복 비교가 발생합니다.

하지만!! 양초의 개수가 고정되어 있다면 대략 5번의 비교 주기로 작성하겠습니다. 그러나 모든 표본 크기에 대해 이러한 재계산을 가능하게 하는 방법은 문제입니다.

 
Andrey Koldorkin :

모든 닫힌 양초에 대한 데이터 배열을 작성해야 합니다(즉, 현재 값은 고려하지 않음) - 설정에 지정된 기간 동안 높음, 낮음, 열기, 닫기 양초(4개 매개변수). - 그것은이다.

다음으로 매개변수를 비교해야 합니다. 검색 기간을 10개의 양초로 설정합니다. 여기에서 10개의 양초 기간 동안 모든 고점을 확인해야 합니다. 두 개 이상의 일치 항목이 있으면 다음을 반환합니다.

1. 깃발 - "성냥이 있습니다".

1. 양초에 대해 동일한 값이 발견된 높은 값.

2. 당신이 그것들을 참조하고 그것들에 대한 저가, 종가, 시가 매개변수를 찾을 수 있도록 이 양초의 번호.

일반적으로 이 중 대부분은 수행 방법이 명확합니다.

레벨을 형성하는 캔들을 구체적으로 어떻게 언급해야 하는지는 명확하지 않습니다. 이론적으로 재계산 시 반복 횟수(i)를 기억하는 것이 가능하지만 먼저 로그가 기록되는 재계산이 있으므로 적용할 수 없습니다.

그리고 로그 항목이 출력되는 방식의 변형에서 - 여기에서도 필요한 것은 아닙니다.

나는 먼저 양초 1을 가져와 다른 9개와 비교해야 한다는 것을 대략적으로 이해합니다. 일치하는 항목이 있으면 이 양초의 수와 매개변수를 분리하고 확인란을 켭니다. 다음으로 나머지로 양초 2를 확인하고 샘플의 중간까지 계속 확인하십시오. 그러면 반대쪽에서만 중복 비교가 발생합니다.

하지만!! 양초의 개수가 고정되어 있다면 대략 5번의 비교 주기로 작성하겠습니다. 그러나 모든 표본 크기에 대해 이러한 재계산을 가능하게 하는 방법은 문제입니다.

그리고 그건 그렇고, 가격 가치의 정확한 일치는 빈번하지 않을 것입니다. 특정 델타를 설정해야 하며 가격이 이 값 이상 차이가 나지 않으면 값을 일치로 간주해야 합니다.

따라서 범위에 있는 각 양초에 일치하는 양초 목록이 있어야 하는 경우 구조 배열을 사용하려고 합니다. 제 생각에는 구독을 취소하겠습니다.
 
Andrey Koldorkin :

모든 닫힌 양초에 대한 데이터 배열을 작성해야 합니다(즉, 현재 값은 고려하지 않음) - 설정에 지정된 기간 동안 높음, 낮음, 열기, 닫기 양초(4개 매개변수). - 그것은이다.

다음으로 매개변수를 비교해야 합니다. 검색 기간을 10개의 양초로 설정합니다. 여기에서 10개의 양초 동안 모든 고점을 확인해야 합니다. 두 개 이상의 일치 항목이 있으면 다음을 반환합니다.

1. 플래그 - "성냥이 있습니다".

1. 양초에 대해 동일한 값이 발견된 높은 값.

2. 당신이 그것들을 참조하고 그것들에 대한 저가, 종가, 시가 매개변수를 찾을 수 있도록 이 양초의 번호.

일반적으로 이 중 대부분은 수행 방법이 명확합니다.

레벨을 형성하는 캔들을 구체적으로 어떻게 언급해야 하는지는 명확하지 않습니다. 이론적으로 재계산 시 반복 횟수(i)를 기억하는 것이 가능하지만 먼저 로그가 기록되는 재계산이 있으므로 적용할 수 없습니다.

그리고 로그 항목이 출력되는 방식의 변형에서 - 여기에서도 필요한 것은 아닙니다.

나는 먼저 양초 1을 가져와 다른 9개와 비교해야 한다는 것을 대략적으로 이해합니다. 일치하는 항목이 있으면 이 양초의 수와 매개변수를 분리하고 확인란을 켭니다. 다음으로 나머지로 양초 2를 확인하고 샘플의 중간까지 계속 확인하십시오. 그러면 반대쪽에서만 중복 비교가 발생합니다.

하지만!! 양초의 개수가 고정되어 있다면 대략 5번의 비교 주기로 작성하겠습니다. 그러나 모든 표본 크기에 대해 그러한 재계산을 가능하게 하는 방법은 문제입니다.

"일치" 플래그 대신 카운터를 놓고 카운터가 가장 큰 높은 값에 레벨이 있습니다.

높은 값은 반올림할 수 있습니다. 예를 들어 값 1.23456은 1.2346으로 반올림됩니다.

값 1.23462는 1.2346으로 반올림됩니다.

10개의 양초 중 2개의 양초가 1.23456과 같을 가능성이 낮기 때문입니다.

즉, 수준에서 춤

가지고 있는 양초의 수는 고정되어 있고 일정량의 데이터를 구조에 씁니다.

즉, 구조에 얼마나 많은 양초가 그렇게 많은 반복으로 쓰여졌는지

 
Andrey Koldorkin :

모든 닫힌 양초에 대한 데이터 배열을 작성해야 합니다(즉, 현재 값은 고려하지 않음) - 설정에 지정된 기간 동안 높음, 낮음, 열기, 닫기 양초(4개 매개변수). - 그것은이다.

다음으로 매개변수를 비교해야 합니다. 검색 기간을 10개의 양초로 설정합니다. 여기에서 10개의 양초 기간 동안 모든 고점을 확인해야 합니다. 두 개 이상의 일치 항목이 있으면 다음을 반환합니다.

1. 플래그 - "성냥이 있습니다".

1. 양초에 대해 동일한 값이 발견된 높은 값.

2. 당신이 그것들을 참조하고 그것들에 대한 저가, 종가, 시가 매개변수를 찾을 수 있도록 이 양초의 번호.

일반적으로 이 중 대부분은 수행 방법이 명확합니다.

레벨을 형성하는 캔들을 구체적으로 어떻게 언급해야 하는지는 명확하지 않습니다. 이론적으로 재계산 시 반복 횟수(i)를 기억하는 것이 가능하지만 먼저 로그가 기록되는 재계산이 있으므로 적용할 수 없습니다.

그리고 로그 항목이 출력되는 방식의 변형에서 - 여기에서도 필요한 것은 아닙니다.

나는 먼저 양초 1을 가져와 다른 9개와 비교해야 한다는 것을 대략적으로 이해합니다. 일치하는 항목이 있으면 이 양초의 수와 매개변수를 분리하고 확인란을 켭니다. 다음으로 나머지로 양초 2를 확인하고 샘플의 중간까지 계속 확인하십시오. 그러면 반대쪽에서만 중복 비교가 발생합니다.

하지만!! 양초의 개수가 고정되어 있다면 저는 대략 5번의 비교 사이클을 이렇게 쓸 것입니다. 그러나 모든 표본 크기에 대해 그러한 재계산을 가능하게 하는 방법은 문제입니다.

작업은 흥미롭지만 이 문제를 해결하는 방법에 대한 이해가 잘못되었습니다. 프로그래밍 지식 그리 많지 않습니다.

보세요: 당신은 특정한 인용구 세트를 가지고 있습니다. 귀하의 임무는 이 세트에서 특정 조건을 충족하는 막대만 선택하는 것입니다. 예를 들어, 최고값이 서로 일치하는 막대 모음을 가져오려고 합니다. 실제로 많은 선택 조건이 있을 수 있으며 시간이 지남에 따라 추가될 수 있습니다. 막대 모음을 받으면 다른 매개변수를 쉽게 분석할 수 있습니다.

따라서 작업을 위해 특정 조건(의사 코드)을 충족하는 막대 배열을 반환하는 함수를 작성해야 합니다.

 массив_баров = ПолучитьНужныеБары(Символ(), Таймфрейм(), Период(), УсловиеОтбора);
저것들. 실제로 일부 데이터와 인덱스를 저장하고 반복하는 데 문제가 없습니다. 막대 인덱스 자체가 필요하지 않고 지정된 조건을 충족하는 특정 컬렉션이 필요합니다. 그것을 받으면 한 번에 많은 문제를 해결할 수 있습니다.
 
Artyom Trishkin :
따라서 범위의 각 양초에 일치하는 양초 목록이 있어야 하는 경우 구조 배열을 사용하려고 합니다. 제 생각에는 구독을 취소하겠습니다.

나는 생각했다. 테스트 스크립트로 구독을 취소합니다.

 //+------------------------------------------------------------------+
//|                                                     TestCopy.mq4 |
//|              Copyright 2016, Artem A. Trishkin, Skype artmedia70 |
//|                       https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"
#property link        "https://login.mql5.com/ru/users/artmedia70"
#property version    "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int Search_Period= 10 ;   // Количество копируемых свечей
int searchPeriod=(Search_Period< 1 )? 1 :Search_Period;
input int Delta= 2 ;             // Количество пунктов допуска
int delta=(Delta< 0 )? 0 :Delta;
MqlRates array[];             // Массив структур для копирования Open, High, Low, Close, Time
  
struct DataCandle             // Структура для хранения всех совпадений
  {
   int number_matched;           // Количество совпадений
   MqlRates reference_candle;     // Данные эталонной свечи
   MqlRates matched_candles[];   // Массив свечей, совпадающих с эталонной по нужному критерию 
  };
  DataCandle dataCandle[];     // Массив структур данных свечей и их совпадений
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   int copy_bars=( int ) fmin (Search_Period, Bars ( Symbol (), Period ()));   // количество копируемых свечей
   int copied= CopyRates ( Symbol (), PERIOD_CURRENT , 1 ,copy_bars,array);   // копируем данные
   if (copied> 0 ) {                                                     // если скопировали
       ArrayResize (dataCandle,copied);                                 // задаём размер структуры равным числу скопированных данных
       ZeroMemory (dataCandle);                                         // Обнуляем данные в структуре
       //--- основной цикл по "эталонным" свечам в массиве array. Их параметры будем искать в доп. цикле
       for ( int i= 0 ; i<copy_bars- 1 ; i++) {                             // цикл по скопированным данным от начала до "на один меньше размера массива"
         dataCandle[i].reference_candle.high=array[i].high;           // ищем этот high
         dataCandle[i].reference_candle.low=array[i].low;             // запомнили low для сравнения
         dataCandle[i].reference_candle.time=array[i].time;           // запомнили time для вывода в журнал
         //--- поиск совпадений с эталонной свечой, индексируемой индексом основного цикла i
         int size= 0 ;                                                 // размер массива совпадающих свечей
         ArrayResize (dataCandle[i].matched_candles,size);             // Размер массива совпадений в ноль
         dataCandle[i].number_matched=size;                           // Инициализируем количество совпадений нулём
         //--- теперь ищем совпадения по high свечей в цикле j с high эталонной свечи с индексом i
         for ( int j=i+ 1 ; j<copy_bars; j++) {                           // в цикле от i+1 до copy_bars
             //--- если совпадают high эталонной свечи (i) и свечи с индексом j (с допуском на величину delta*Point)
             if ( NormalizeDouble (delta* Point ()- fabs (array[i].high-array[j].high), Digits ())>= 0 ) {
               size++;                                               
               ArrayResize (dataCandle[i].matched_candles,size);             // увеличим размер массива совпадающих свечей
               dataCandle[i].number_matched=size;                           // запишем количество совпадений
               dataCandle[i].matched_candles[size- 1 ].high=array[j].high;   // запишем в массив high совпадающей свечи
               dataCandle[i].matched_candles[size- 1 ].low=array[j].low;     // запишем в массив low совпадающей свечи
               dataCandle[i].matched_candles[size- 1 ].time=array[j].time;   // запишем в массив время совпадающей свечи
               //Print("Время свечи ",i," :",TimeToString(dataCandle[i].reference_candle.time=array[i].time),", high=",DoubleToString(dataCandle[i].reference_candle.high=array[i].high,Digits()),". Совпадение со свечой ",TimeToString(dataCandle[i].matched_candles[size-1].time=array[j].time),", её high ",DoubleToString(dataCandle[i].matched_candles[size-1].high=array[j].high,Digits()),". Совпадений: ",(string)dataCandle[i].number_matched);
               }
            }
         }
      }

   //--- Посмотрим чего понаписали в массивы
   for ( int i= 0 ; i< ArraySize (dataCandle)- 1 ; i++) {
       string refs_txt= "" ;
       string matched_txt= "" ;
      refs_txt= "Свеча " + IntegerToString (i, 2 , '0' )+ ": время " + TimeToString (dataCandle[i].reference_candle.time)+ ", high: " + DoubleToString (dataCandle[i].reference_candle.high, Digits ())+ " имеет совпадений: " +( string )dataCandle[i].number_matched+ " шт. " ;
       if (dataCandle[i].number_matched> 0 ) {
         for ( int j= 0 ; j< ArraySize (dataCandle[i].matched_candles); j++) {
            matched_txt= "Совпадение " + IntegerToString (j+ 1 )+ ": " + TimeToString (dataCandle[i].matched_candles[j].time)+ ", high: " + DoubleToString (dataCandle[i].matched_candles[j].high, Digits ());
            }
         }
       Print (refs_txt,matched_txt);
      }
  }
//+------------------------------------------------------------------+

나는 모든 단계를 설명하려고 노력했습니다.

모든 경기의 주기를 채우고 나면 모든 양초와 일치하는 양초를 포함하는 배열이 생깁니다. 또한 이미 낮은 항목을 검색할 수 있습니다. 검색 주기에서 바로 구성할 수 있습니다. 당신이 원하는대로.

 

글쎄, 당신은 또한 이것을 할 수 있습니다 : 여기 범위의 각 양초에 대해 경기가 기록됩니다. 이전 버전에서는 하나의 양초에 대해서만 일치 항목이 작성되었습니다. 즉, 이 항목에 일치하는 항목에 대해서는 일치 항목이 더 이상 작성되지 않았습니다.

 //+------------------------------------------------------------------+
//|                                                     TestCopy.mq4 |
//|              Copyright 2016, Artem A. Trishkin, Skype artmedia70 |
//|                       https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"
#property link        "https://login.mql5.com/ru/users/artmedia70"
#property version    "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int Search_Period= 10 ;   // Количество копируемых свечей
int searchPeriod=(Search_Period< 1 )? 1 :Search_Period;
input int Delta= 2 ;             // Количество пунктов допуска
int delta=(Delta< 0 )? 0 :Delta;
MqlRates array[];             // Массив структур для копирования Open, High, Low, Close, Time
  
struct DataCandle             // Структура для хранения всех совпадений
  {
   int number_matched;           // Количество совпадений
   MqlRates reference_candle;     // Данные эталонной свечи
   MqlRates matched_candles[];   // Массив свечей, совпадающих с эталонной по нужному критерию 
  };
  DataCandle dataCandle[];     // Массив структур данных свечей и их совпадений
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   int copy_bars=( int ) fmin (Search_Period, Bars ( Symbol (), Period ()));   // количество копируемых свечей
   int copied= CopyRates ( Symbol (), PERIOD_CURRENT , 1 ,copy_bars,array);   // копируем данные
   if (copied> 0 ) {                                                     // если скопировали
       ArrayResize (dataCandle,copied);                                 // задаём размер структуры равным числу скопированных данных
       ZeroMemory (dataCandle);                                         // Обнуляем данные в структуре
       //--- основной цикл по "эталонным" свечам в массиве array. Их параметры будем искать в доп. цикле
       for ( int i= 0 ; i<copy_bars; i++) {                               // цикл по скопированным данным от начала до конца
         dataCandle[i].reference_candle.high=array[i].high;           // ищем этот high
         dataCandle[i].reference_candle.low=array[i].low;             // запомнили low для сравнения
         dataCandle[i].reference_candle.time=array[i].time;           // запомнили time для вывода в журнал
         //--- поиск совпадений с эталонной свечой, индексируемой индексом основного цикла i
         int size= 0 ;                                                 // размер массива совпадающих свечей
         ArrayResize (dataCandle[i].matched_candles,size);             // Размер массива совпадений в ноль
         dataCandle[i].number_matched=size;                           // Инициализируем количество совпадений нулём
         //--- теперь ищем совпадения по high свечей в цикле j с high эталонной свечи с индексом i
         for ( int j= 0 ; j<copy_bars; j++) {                             // в цикле от 0 до copy_bars
             if (j==i) continue ;                                       // пропустим свечу "саму себя"
             //--- если совпадают high эталонной свечи (i) и свечи с индексом j (с допуском на величину Point)
             if ( NormalizeDouble (delta* Point ()- fabs (array[i].high-array[j].high), Digits ())>= 0 ) {
               size++;                                               
               ArrayResize (dataCandle[i].matched_candles,size);             // увеличим размер массива совпадающих свечей
               dataCandle[i].number_matched=size;                           // запишем количество совпадений
               dataCandle[i].matched_candles[size- 1 ].high=array[j].high;   // запишем в массив high совпадающей свечи
               dataCandle[i].matched_candles[size- 1 ].low=array[j].low;     // запишем в массив low совпадающей свечи
               dataCandle[i].matched_candles[size- 1 ].time=array[j].time;   // запишем в массив время совпадающей свечи
               //Print("Время свечи ",i," :",TimeToString(dataCandle[i].reference_candle.time=array[i].time),", high=",DoubleToString(dataCandle[i].reference_candle.high=array[i].high,Digits()),". Совпадение со свечой ",TimeToString(dataCandle[i].matched_candles[size-1].time=array[j].time),", её high ",DoubleToString(dataCandle[i].matched_candles[size-1].high=array[j].high,Digits()),". Совпадений: ",(string)dataCandle[i].number_matched);
               }
            }
         }
      }

   //--- Посмотрим чего понаписали в массивы
   for ( int i= 0 ; i< ArraySize (dataCandle)- 1 ; i++) {
       string refs_txt= "" ;
       string matched_txt= "" ;
      refs_txt= "Свеча " + IntegerToString (i, 2 , '0' )+ ": время " + TimeToString (dataCandle[i].reference_candle.time)+ ", high: " + DoubleToString (dataCandle[i].reference_candle.high, Digits ())+ " имеет совпадений: " +( string )dataCandle[i].number_matched+ " шт. " ;
       if (dataCandle[i].number_matched> 0 ) {
         for ( int j= 0 ; j< ArraySize (dataCandle[i].matched_candles); j++) {
            matched_txt+= " Совпадение " + IntegerToString (j+ 1 )+ ": " + TimeToString (dataCandle[i].matched_candles[j].time)+ ", high: " + DoubleToString (dataCandle[i].matched_candles[j].high, Digits ());
            }
         }
       Print (refs_txt,matched_txt);
      }
  }
//+------------------------------------------------------------------+
 
총각 또는 약세 캡처의 신호에 대한 주문을 여는 아이디어, 매수/매도에 대한 하나의 거래와 보류 중인 주문 에 대한 하나의 거래만 있도록 만드는 방법 , 나는 각 틱에서 엽니다 거래. 문제를 해결하는 데 도움이 됩니다.
파일:
ritfv.png  46 kb
ohs.txt  5 kb
사유: