Çaydanlıktan gelen sorular - sayfa 6

 
pusheax :

Gerçek hesaplardaki bazı DC'ler, sembol adlarına "." gibi her türlü önek atar. veya "FXF".

Bu önekleri nasıl değiştirebilirim?

şöyle yaptım:

#define DEF_SPEC "FXF"

string SymbolsTrade[] = {"AUDCAD"DEF_SPEC ... - bu çalışmıyor

string SymbolsTrade[] = {"AUDCAD"+DEF_SPEC ... - ve bu da çalışmıyor

sonuç olarak, istenen AUDCADFXF yerine sadece FXF alıyorum.

Bana nasıl uygulanacağını söyleme?


İlk olarak, bir diziyi bir numaralandırma ile doldurmak yalnızca global kapsamda mümkündür, bu nedenle oraya + gitmeyecek, yalnızca dize sabitleri.

İkincisi, ayrılmış bir statik diziniz yok ve dinamik bir diziyi bir numaralandırma ile dolduramazsınız.

En kolay yol, dinamik bir diziyi dağıtacak ve dolduracak bir fonksiyon yazmaktır, içindeki her şeyi yapabilir, sabitler ile tanımlar ekleyebilir vb.

 
Urain :

İlk olarak, bir diziyi bir numaralandırma ile doldurmak yalnızca global kapsamda mümkündür, bu nedenle oraya + gitmeyecek, yalnızca dize sabitleri.

İkincisi, tahsis edilmiş bir statik diziniz yok ve dinamik bir diziyi bir numaralandırma ile dolduramazsınız.

En kolay yolu, dinamik bir diziyi dağıtacak ve dolduracak bir fonksiyon yazmaktır, içindeki her şeyi yapabilir, sabitler ile tanımlar ekleyebilir vb.

Ayrıca DC'de / BROKER'da bulunan tüm döviz çiftlerini gözden geçirebilir ve bunlardaki bileşen para birimlerini analiz edebilirsiniz.

Bundan sonra, herhangi bir önek eklenmesini dikkate alarak dinamik bir döviz çiftleri dizisi oluşturabilirsiniz.

Hatırladığım kadarıyla, bu MT5 için evrensel seçeneklerden biri.

 
Urain :

İlk olarak, bir diziyi bir numaralandırma ile doldurmak yalnızca global kapsamda mümkündür, bu nedenle oraya + gitmeyecek, yalnızca dize sabitleri.

İkincisi, ayrılmış bir statik diziniz yok ve dinamik bir diziyi bir numaralandırma ile dolduramazsınız.

En kolay yolu, dinamik bir diziyi dağıtacak ve dolduracak bir fonksiyon yazmaktır, içindeki her şeyi yapabilir, sabitler ile tanımlar ekleyebilir vb.

Kısacası, sizi doğru anladıysam, o zaman global kapsamda bileşik sabitlerden statik bir dize dizisi oluşturmak imkansız değil mi?

 
uncleVic :

Kodu kaynakta görebilirsiniz. Sapma aramak için iki yöntem kullanılır:

1. Yöntem bool CsignalMACD::ExtState(int ind) - veriyi arama için hazırlar;

2. Yöntem bool CsignalMACD::CompareMaps(int map,int count,bool minimax,int start) - belirtilen parametrelerle bir piyasa modeli arar.

İşe yararsa, Rusça yöntemlere yapılan yorumlar şunlardır:

bool yöntemi için CsignalMACD::ExtState(int ind)

bool CsignalMACD::CompareMaps(int map,int count,bool minimax,int start) yöntemi için

Ayrıca bir sorum var - bir MACD sinyali kullanarak bir danışman oluştururken sapma olan seçeneği tam olarak nasıl belirleyebilirim? El kitabı birkaç sinyal seçeneği sunar.
 
strelec :
Ayrıca bir sorum var - bir MACD sinyali kullanarak bir danışman oluştururken sapma olan seçeneği tam olarak nasıl belirleyebilirim? El kitabı birkaç sinyal seçeneği sunar.

Herkesin zaten fark ettiği gibi, herhangi bir sinyal birkaç piyasa modelini tespit edebilir. Kalıp kullanımını kontrol etmek için, değerin kalıp kullanımı bit eşlemi olduğu (bit numarası ve kalıp numarası aynıdır) PatternsUsage(int value) yöntemini çağırın. Bit 1'dir - model kullanılır, bit 0'dır - model kullanılmaz (varsayılan olarak tüm bitler 1'dir). Model numaralandırma, bitler gibi 0'dan başlar.

Bu nedenle, yalnızca diverjansı kullanmak istiyorsanız, PatternsUsage(16); kullanmalısınız. neden 16? 16 binary 10000b'de (yani, bit 4 1'dir, geri kalan bitler 0'dır). Ve sadece model 4 "osilatörün ve fiyatın farklılığı" .

Tek "ama", "tutamaçlar" yapılması gerekecek.

Sihirbaz tamamlandıktan sonra kaynak düzenleyicide açılır. Nette şöyle bir şey arayın:

 //--- Creating filter CSignalMACD
   CSignalMACD *filter0= new CSignalMACD;
   if (filter0== NULL )
     {
       //--- failed
       printf ( __FUNCTION__ + ": error creating filter0" );
      ExtExpert.Deinit();
       return (- 3 );
     }
   signal.AddFilter(filter0);
//--- Set filter parameters
   filter0.PeriodFast(Signal_MACD_PeriodFast);
   filter0.PeriodSlow(Signal_MACD_PeriodSlow);
   filter0.PeriodSignal(Signal_MACD_PeriodSignal);
   filter0.Applied(Signal_MACD_Applied);
   filter0.Weight(Signal_MACD_Weight);

ve bir satır ekleyin

filter0.PatternsUsage(16);

ortaya çıkacak:

 //--- Creating filter CSignalMACD
   CSignalMACD *filter0= new CSignalMACD;
   if (filter0== NULL )
     {
       //--- failed
       printf ( __FUNCTION__ + ": error creating filter0" );
      ExtExpert.Deinit();
       return (- 3 );
     }
   signal.AddFilter(filter0);
//--- Set filter parameters
   filter0.PatternsUsage( 16 );
   filter0.PeriodFast(Signal_MACD_PeriodFast);
   filter0.PeriodSlow(Signal_MACD_PeriodSlow);
   filter0.PeriodSignal(Signal_MACD_PeriodSignal);
   filter0.Applied(Signal_MACD_Applied);
   filter0.Weight(Signal_MACD_Weight);

Şimdilik bu kadar. Sorularınız varsa, lütfen iletişime geçin.

 
uncleVic :

Herkesin zaten fark ettiği gibi, herhangi bir sinyal birkaç piyasa modelini tespit edebilir. Kalıp kullanımını kontrol etmek için, değerin kalıp kullanımı bit eşlemi olduğu (bit numarası ve kalıp numarası aynıdır) PatternsUsage(int value) yöntemini çağırın. Bit 1'dir - model kullanılır, bit 0'dır - model kullanılmaz (varsayılan olarak tüm bitler 1'dir). Model numaralandırma, bitler gibi 0'dan başlar.

Bu nedenle, yalnızca diverjansı kullanmak istiyorsanız, PatternsUsage(16); kullanmalısınız. neden 16? 16 binary 10000b'de (yani, bit 4 1'dir, geri kalan bitler 0'dır). Ve sadece model 4 "osilatörün ve fiyatın farklılığı" .

Tek "ama", "tutamaçlar" yapılması gerekecek.

Sihirbaz tamamlandıktan sonra kaynak düzenleyicide açılır. Nette şöyle bir şey arayın:

ve bir satır ekleyin

filter0.PatternsUsage(16);

ortaya çıkacak:

Şimdilik bu kadar. Sorularınız varsa, lütfen iletişime geçin.

Teşekkür ederim. Olmuş. Ve hemen daha fazla soru ortaya çıktı. Bu sapma varyantında, komşu tepeler (altlar) arasındaki zaman aralığı ne kadar dikkate alınır?
 
strelec :
Teşekkür ederim. Olmuş. Ve hemen daha fazla soru ortaya çıktı. Bu sapma varyantında, komşu tepeler (altlar) arasındaki zaman aralığı ne kadar dikkate alınır?
Aralık ayrıştırılmaz.
 

Olaylarla ilgilenmeye çalıştığım bir uzman var.

 string event [ 10 ]=
{
"CHARTEVENT_KEYDOWN - событие нажатия клавиатуры, когда окно графика находится в фокусе" ,
"CHARTEVENT_OBJECT_CREATE — событие создания графического объекта" ,
"CHARTEVENT_OBJECT_CHANGE — событие изменения свойств объекта через диалог свойств" ,
"CHARTEVENT_OBJECT_DELETE — событие удаления графического объекта" ,
"CHARTEVENT_CLICK — cобытие щелчка мыши графике" ,
"CHARTEVENT_OBJECT_CLICK — событие щелчка мыши на графическом объекте, принадлежащего графику" ,
"CHARTEVENT_OBJECT_DRAG — событие перемещения графического объекта при помощи мыши" ,
"CHARTEVENT_OBJECT_ENDEDIT — событие окончания редактирования текста в поле ввода графического объекта LabelEdit" ,
"CHARTEVENT_CHART_CHANGE  — событие изменения графика" ,
"CHARTEVENT_CUSTOM+n — идентификатор пользовательского события, где n находится в диапазоне от 0 до 65535"
};
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent( const int id,
                   const long &lparam,
                   const double &dparam,
                   const string &sparam)
  {
   Print( "id=(" ,id, ") -- " , event [id], "  lparam=" ,lparam, "   dparam=" ,dparam, "   sparam=" , sparam);
  }
//+------------------------------------------------------------------+

Eylemlere karşılık gelmeyen olaylar alıyorum.

Grafikte tıklandığında ve düğmeye basıldığında tam olarak eşleşir

Örneğin, grafik kaydırıldığında oluşturulan tartışmalı olay kimliği=9 (CHARTEVENT_CUSTOM) ve bir akışta yaklaşık 10 özdeş olay vardır .

CHARTEVENT_OBJECT_ENDEDIT etkinliğini kontrol etmedi.

Gerisi belli değil. Açıklama, olay numarasıyla eşleşmiyor veya olay, örneğin bir nesnenin oluşturulması, manuel olarak bir nesne oluşturulurken yanlış oluşturuldu.

Genel olarak, yardım istiyorum.

 
kPVT :

Olaylarla ilgilenmeye çalıştığım bir uzman var.

Eylemlere karşılık gelmeyen olaylar alıyorum.

Grafikte tıklandığında ve düğmeye basıldığında tam olarak eşleşir

Örneğin, grafik kaydırıldığında oluşturulan tartışmalı olay kimliği=9 (CHARTEVENT_CUSTOM) ve bir akışta yaklaşık 10 özdeş olay vardır .

CHARTEVENT_OBJECT_ENDEDIT etkinliğini kontrol etmedi.

Gerisi net değil. Açıklama, olay numarasıyla eşleşmiyor veya olay, örneğin bir nesnenin oluşturulması, manuel olarak bir nesne oluşturulurken yanlış oluşturuldu.

Genel olarak, yardım istiyorum.

Başlangıçta önceden atanmış sayısal sabitlere CHARTEVENT_XXXXXXXX sayısal karşılıklarınızı atarsınız...

sorun şu:

event[id]

ihtiyaç:

 //--- нажатие мышкой на графическом объекте
   if (id== CHARTEVENT_OBJECT_CLICK )
     {
       Print ( "Нажатие кнопки мышки на объекте с именем '" +sparam+ "'" );
     }
//--- нажатие кнопки на клавиатуре
   if (id== CHARTEVENT_KEYDOWN )
     {
 
kPVT :

Gerisi net değil. Açıklama, olay numarasıyla eşleşmiyor veya olay, örneğin bir nesnenin oluşturulması , manuel olarak bir nesne oluşturulurken yanlış oluşturuldu.

Maalesef sorunuz net değil. Özellikle ne doğru çalışmıyor?