Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 573

 
Andrey Koldorkin :

Bunu çözmeye çalışacağım. Teşekkür ederim.

Benim için zevkti. Tüm yüksekler basitçe dizide saklanır ve ardından dizide depolanan tüm veriler bir döngüdeki günlükte yazdırılır.

Bu betiğin tam olarak ihtiyacınız olanı yapması hiç de gerekli değildir. Sadece bir dizide veri depolama ilkesini gösterir.

 
Artyom Trishkin :

Benim için zevkti. Tüm yüksekler basitçe dizide saklanır ve ardından dizide depolanan tüm veriler bir döngüdeki günlükte yazdırılır.

Bu betiğin tam olarak ihtiyacınız olanı yapması hiç de gerekli değildir. Sadece bir dizide veri depolama ilkesini gösterir.

Tam aradığım şey buydu. Verileri bir şekilde seçtiğim süre için bir diziye kaydetmem gerekiyordu. Bu kısmı anladım.

Şimdi bir sorum var, dizideki kayıtlı verilere NASIL erişilir ve birbirleriyle nasıl karşılaştırılır?

Burada yinelemelerin gittiği ortaya çıktı, dizi adım adım yazıldı. Bu iyi. Ama şimdi elementleri birbirleriyle karşılaştırmamız gerekiyor.

Yeni bir yineleme sayısı bildirmeniz mi gerekiyor? ve zaten bir şekilde verileri çıkarıp karşılaştırın mı? Ama bu yine sonuçları kaydetmek için bir yer ve ... sonunda her şey tekrar ediyor.

Kabaca, karşılaştırma periyodu 5-7 mum ise, o zaman 1'inci diğer 6'lı, sonra 2'nci vb. ile karşılaştırmalıyız. bu Yüksek'i hesaplamanız gerekir ve ikincisi, bu mumlardan minimum Düşük olanı bulun. Onlar. tüm parametrelerini çıkarmak için sonuç olarak belirli mumlara erişmeniz gerekir.

Bunu yapmak bile mümkün mü?

 
Andrey Koldorkin :

Tam aradığım şey buydu. Verileri bir şekilde seçtiğim süre için bir diziye kaydetmem gerekiyordu. Bu kısmı anladım.

Şimdi bir sorum var, dizideki kayıtlı verilere NASIL erişilir ve birbirleriyle nasıl karşılaştırılır?

Burada yinelemelerin gittiği ortaya çıktı, dizi adım adım yazıldı. Bu iyi. Ama şimdi elementleri birbirleriyle karşılaştırmamız gerekiyor.

Yeni bir yineleme sayısı bildirmeniz mi gerekiyor? ve zaten bir şekilde verileri çıkarıp karşılaştırın mı? Ama bu yine sonuçları kaydetmek için bir yer ve ... sonunda her şey tekrar ediyor.

Kabaca, karşılaştırma periyodu 5-7 mum ise, o zaman 1'inci diğer 6'lı, sonra 2'nci vb. ile karşılaştırmalıyız. bu Yüksek'i hesaplamanız gerekir ve ikincisi, bu mumlardan minimum Düşük olanı bulun. Onlar. tüm parametrelerini çıkarmak için sonuç olarak belirli mumlara erişmeniz gerekir.

Bunu yapmak bile mümkün mü?

İşte sadece kaydedilen dizinin bir anketi ve kaydedilen tüm verilerin günlüğe çıktısı:

 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 ]);
   }

Görevi belirleyelim:

Kaydedilen dizide bulmak gerekiyor ... tam olarak ne?

 
Artyom Trishkin :

İşte sadece kaydedilen dizinin bir anketi ve kaydedilen tüm verilerin günlüğe çıktısı:

Görevi belirleyelim:

Kaydedilen dizide bulmak gerekiyor ... tam olarak ne?

Tüm kapalı mumlar için bir dizi veri yazmam gerekiyor (yani mevcut olanı dikkate almıyoruz) - Yüksek, Düşük, Açık, Kapalı mumlar (4 parametre) ayarlarda belirtilen süre için. - bu.

Ardından, parametreleri karşılaştırmam gerekiyor. Arama periyodu 10 mum olsun. Burada 10 mumluk bir süre boyunca tüm Yüksekleri kontrol etmeniz gerekir. İki veya daha fazla eşleşme varsa, şunu döndürün:

1. Bayrak - "Kibrit var".

1. Mumlar için aynı değerlerin bulunduğu Yüksek değer.

2. Bu şamdanların numaraları, onlara başvurabilir ve onlar için Düşük, Kapat, Açık parametrelerini öğrenebilirsiniz.

Genel olarak, bunun nasıl yapılacağı çok açık.

Seviyeyi oluşturan mumlara özel olarak nasıl atıfta bulunulacağı açık değildir. Teorik olarak tekrar hesaplarken iterasyon numarasını (i) hatırlamak mümkün olacaktır ama önce logun yazıldığına göre bir yeniden hesaplamamız var, uygulayamazsınız.

Ve günlük girişlerinin nasıl çıktı alındığının varyantında - burada da gerekli olan şey değildir.

Kabaca ilk önce mum 1'i almam ve diğer 9 ile karşılaştırmam gerektiğini anlıyorum, eğer bir eşleşme varsa, daha sonra bu mumların sayılarını ve parametrelerini izole edin, onay kutusunu açın. Ardından, mum 2'yi geri kalanıyla kontrol edin, vb. Numunenin ortasına kadar devam edin, çünkü o zaman sadece diğer tarafta yinelenen karşılaştırmalar olacaktır.

ANCAK!! Mum sayısı sabit olsaydı, şöyle yazardım - kabaca 5 döngü karşılaştırma. Ancak soru, herhangi bir örneklem büyüklüğü için böyle bir yeniden hesaplamanın nasıl mümkün olacağıdır.

 
Andrey Koldorkin :

Tüm kapalı mumlar için bir dizi veri yazmam gerekiyor (yani mevcut olanı dikkate almıyoruz) - Yüksek, Düşük, Açık, Kapalı mumlar (4 parametre) ayarlarda belirtilen süre için. - bu.

Ardından, parametreleri karşılaştırmam gerekiyor. Arama periyodu 10 mum olsun. Burada 10 mumluk bir süre boyunca tüm Yüksekleri kontrol etmeniz gerekir. İki veya daha fazla eşleşme varsa, şunu döndürün:

1. Bayrak - "Kibrit var".

1. Mumlar için aynı değerlerin bulunduğu Yüksek değer.

2. Bu şamdanların numaraları, onlara başvurabilir ve onlar için Düşük, Kapat, Açık parametrelerini öğrenebilirsiniz.

Genel olarak, bunun nasıl yapılacağı çok açık.

Seviyeyi oluşturan mumlara özel olarak nasıl atıfta bulunulacağı açık değildir. Teorik olarak tekrar hesaplarken iterasyon numarasını (i) hatırlamak mümkün olacaktır ama önce logun yazıldığına göre bir yeniden hesaplamamız var, uygulayamazsınız.

Ve günlük girişlerinin nasıl çıkarıldığının varyantında - burada da gerekli olan şey değildir.

Kabaca ilk önce mum 1'i almam ve diğer 9 ile karşılaştırmam gerektiğini anlıyorum, eğer bir eşleşme varsa, daha sonra bu mumların sayılarını ve parametrelerini izole edin, onay kutusunu açın. Ardından, mum 2'yi geri kalanıyla kontrol edin, vb. Numunenin ortasına kadar devam edin, çünkü o zaman sadece diğer tarafta yinelenen karşılaştırmalar olacaktır.

ANCAK!! Mum sayısı sabit olsaydı, şöyle yazardım - kabaca 5 döngü karşılaştırma. Ancak soru, herhangi bir örneklem büyüklüğü için böyle bir yeniden hesaplamanın nasıl mümkün olacağıdır.

Ve bu arada, fiyat değerlerinin kesin tesadüfünün sık olması muhtemel değildir. Belirli bir delta belirlemeniz ve fiyatların bu değerden daha fazla farklılık göstermemesi durumunda değerleri bir eşleşme olarak düşünmeniz gerekir.

Bu nedenle, aralıktaki mumların her birinin kendi eşleşen mum listesine sahip olması gerekiyorsa, o zaman bir dizi yapı kullanmaya çalışırdım. Sanırım - abonelikten çıkacağım.
 
Andrey Koldorkin :

Tüm kapalı mumlar için bir dizi veri yazmam gerekiyor (yani mevcut olanı dikkate almıyoruz) - Yüksek, Düşük, Açık, Kapalı mumlar (4 parametre) ayarlarda belirtilen süre için. - bu.

Ardından, parametreleri karşılaştırmam gerekiyor. Arama periyodu 10 mum olsun. Burada 10 mumluk bir süre boyunca tüm Yüksekleri kontrol etmeniz gerekir. İki veya daha fazla eşleşme varsa, şunu döndürün:

1. Bayrak - "Kibrit var".

1. Mumlar için aynı değerlerin bulunduğu Yüksek değer.

2. Bu şamdanların numaraları, onlara başvurabilir ve onlar için Düşük, Kapat, Açık parametrelerini öğrenebilirsiniz.

Genel olarak, bunun nasıl yapılacağı çok açık.

Seviyeyi oluşturan mumlara özel olarak nasıl atıfta bulunulacağı açık değildir. Teorik olarak tekrar hesaplarken iterasyon numarasını (i) hatırlamak mümkün olacaktır ama önce logun yazıldığına göre bir yeniden hesaplamamız var, uygulayamazsınız.

Ve günlük girişlerinin nasıl çıktı alındığının varyantında - burada da gerekli olan şey değildir.

Kabaca ilk önce mum 1'i almam ve diğer 9 ile karşılaştırmam gerektiğini anlıyorum, eğer bir eşleşme varsa, daha sonra bu mumların sayılarını ve parametrelerini izole edin, onay kutusunu açın. Ardından, mum 2'yi geri kalanıyla kontrol edin, vb. Numunenin ortasına kadar devam edin, çünkü o zaman sadece diğer tarafta yinelenen karşılaştırmalar olacaktır.

ANCAK!! Mum sayısı sabit olsaydı, şöyle yazardım - kabaca 5 döngü karşılaştırma. Ancak soru, herhangi bir örneklem büyüklüğü için böyle bir yeniden hesaplamanın nasıl mümkün olacağıdır.

"Eşleşmeler" bayrağı yerine, sayacın en büyük olduğu yüksek değere bir sayaç koyun, bir seviye var

Yüksek değerler yuvarlanabilir, örneğin 1,23456 değeri 1,2346'ya yuvarlanır

ve 1.23462 değeri 1,2346'ya yuvarlanır

çünkü 10 mumdan 2'sinin 1.23456'ya eşit olması olası değildir.

yani seviyeden dans et

ve sahip olduğunuz mum sayısı sabittir, yapıya belirli miktarda veri yazarsınız.

yani yapıda kaç tane mum yazılıyor, bu kadar çok yineleme

 
Andrey Koldorkin :

Tüm kapalı mumlar için bir dizi veri yazmam gerekiyor (yani mevcut olanı dikkate almıyoruz) - Yüksek, Düşük, Açık, Kapalı mumlar (4 parametre) ayarlarda belirtilen süre için. - bu.

Ardından, parametreleri karşılaştırmam gerekiyor. Arama periyodu 10 mum olsun. Burada 10 mumluk bir süre boyunca tüm Yüksekleri kontrol etmeniz gerekir. İki veya daha fazla eşleşme varsa, şunu döndürün:

1. Bayrak - "Kibrit var".

1. Mumlar için aynı değerlerin bulunduğu Yüksek değer.

2. Bu şamdanların numaraları, onlara başvurabilir ve onlar için Düşük, Kapat, Açık parametrelerini öğrenebilirsiniz.

Genel olarak, bunun nasıl yapılacağı çok açık.

Seviyeyi oluşturan mumlara özel olarak nasıl atıfta bulunulacağı açık değildir. Teorik olarak tekrar hesaplarken iterasyon numarasını (i) hatırlamak mümkün olacaktır ama önce logun yazıldığına göre bir yeniden hesaplamamız var, uygulayamazsınız.

Ve günlük girişlerinin nasıl çıktı alındığının varyantında - burada da gerekli olan şey değildir.

Kabaca anlıyorum ki, önce mum 1'i alıp diğer 9 ile karşılaştırmam gerekiyor, eğer bir eşleşme varsa, daha sonra bu mumların sayılarını ve parametrelerini izole edin, onay kutusunu açın. Ardından, mum 2'yi geri kalanıyla kontrol edin, vb. Numunenin ortasına kadar devam edin, çünkü o zaman sadece diğer tarafta yinelenen karşılaştırmalar olacaktır.

ANCAK!! Mum sayısı sabit olsaydı, şöyle yazardım - kabaca 5 döngü karşılaştırma. Ancak soru, herhangi bir örneklem büyüklüğü için böyle bir yeniden hesaplamanın nasıl mümkün olacağıdır.

Görev ilginç, ancak bu sorunun nasıl çözüleceğine dair anlayışınız yanlış, çünkü programlama bilgisi çok fazla değil.

Bakın: belirli bir dizi teklifiniz var. Göreviniz, bu setten yalnızca belirli koşulları karşılayan çubukları seçmektir. Örneğin, Yüksekleri birbiriyle eşleşen bir çubuk koleksiyonu elde etmek istiyorsunuz. Aslında birçok seçim koşulu olabilir ve bunlar zaman içinde eklenebilir. Bir çubuk koleksiyonu aldıktan sonra, diğer parametrelerinden herhangi birini kolayca analiz edebilirsiniz.

Bu nedenle, göreviniz için belirli bir koşulu (sözde kod) karşılayan bir dizi çubuk döndürecek bir işlev yazmanız gerekir:

 массив_баров = ПолучитьНужныеБары(Символ(), Таймфрейм(), Период(), УсловиеОтбора);
Onlar. aslında, bazı verileri ve dizinleri depolamak ve yinelemekle ilgili hiçbir sorun yoktur. Çubuk indekslerin kendilerine değil, belirtilen koşulu karşılayan belirli bir koleksiyona ihtiyacınız var. Onu aldıktan sonra, bir çırpıda bir sürü sorunu çözeceksiniz.
 
Artyom Trishkin :
Bu nedenle, aralıktaki mumların her birinin kendi eşleşen mum listesine sahip olması gerekiyorsa, o zaman bir dizi yapı kullanmaya çalışırdım. Sanırım - abonelikten çıkacağım.

Düşündüm. Bir test komut dosyasıyla abonelikten çıkıyorum:

 //+------------------------------------------------------------------+
//|                                                     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);
      }
  }
//+------------------------------------------------------------------+

Tüm adımları açıklamaya çalıştım.

Tüm eşleşmelerin döngüsünü doldurduktan sonra, tüm mumları ve eşleşen mumları içeren bir dizimiz var. Ayrıca, zaten düşük için arama yapabilirsiniz. Ve onu arama döngüsünde düzenleyebilirsiniz. Tercih ettiğiniz gibi.

 

Bunu da yapabilirsiniz: burada aralığın her mumu için eşleşmeler kaydedilir. Önceki versiyonda, eşleşmeler yalnızca bir mum için yazılmıştır - yani, bununla eşleşen için artık bir eşleşme yazılmamıştır.

 //+------------------------------------------------------------------+
//|                                                     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);
      }
  }
//+------------------------------------------------------------------+
 
Bir bekar veya düşüş eğilimi sinyalleri üzerine emir açma fikri, alım / satım için yalnızca bir işlem ve bekleyen bir emir için bir işlem olacak şekilde nasıl yapılır, her bir onay işaretini açarım Ticaret. Sorunu çözmeye yardımcı olun.
Dosyalar:
ritfv.png  46 kb
ohs.txt  5 kb
Neden: