Çok açık, kitaba bakıyorum ve göremiyorum, işe yarıyor, teşekkürler! Sorulara devam ediyorum. Hepsi aynı global değişkenler hakkında. Bu yüzden göstergeye aşağıdaki koşulu ekledim:
Göstergenin hangi para biriminde olduğuna bağlı olarak, hangi global değişkene değer atanacağını belirlemek istiyorum.
Anladığım kadarıyla GlobalVariableSet (valuta, param) global değişkeninde (valuta) adı kendisine yukarıda atanan değeri içermelidir
EA kodunda global değişkeni tekrar çağırırım
stringvaluta="değer";
int i=GlobalVariableGet(valuta); // ama değeri alamadım,.... yani 0 alıyorum. Belki global bir değişkenin adını bu şekilde değiştirmek mümkün değildir?
net değil.. EA gösterge tarafından kaydedilen değeri kontrol ederse, EA'daki valuta parametresinin değerinin cihazın adına karşılık gelmesi gerektiğini varsaymak mantıklı olacaktır, yani. EURUSD veya GBPUSD..
buna göre, eğer EA mevcut enstrümanın değerini kontrol ederse, o zaman
Varolan bir global değişkenin değerini veya hata durumunda 0 değerini döndürür. Bir hata hakkında bilgi almak için GetLastError() işlevini çağırmanız gerekir.
GV içeriğini görüyor ancak alamıyor musunuz?
Pekala, hem isim hem de değer global değişkenlerde gösteriliyor, .... Sadece kodumda global bir değişkenin değerini global bir değişkenin (parametre-adı) aracılığıyla alamıyorum, bir tane belirtmem gerekiyor. dize adı, o zaman sorun yok.
Pekala, hem isim hem de değer global değişkenlerde gösteriliyor, .... Sadece kodumda global bir değişkenin değerini global bir değişkenin (parametre-adı) aracılığıyla alamıyorum, bir tane belirtmem gerekiyor. dize adı, o zaman sorun yok.
net değil.. EA gösterge tarafından kaydedilen değeri kontrol ederse, EA'daki valuta parametresinin değerinin cihazın adına karşılık gelmesi gerektiğini varsaymak mantıklı olacaktır, yani. EURUSD veya GBPUSD..
buna göre, eğer EA mevcut enstrümanın değerini kontrol ederse, o zaman
dizi değeri = Sembol();
int i=GlobalVariableGet(valuta);
Evet, işe yarıyor)) Her şey göründüğünden daha basit)
Buraya gelen ve yardım eden herkese çok TEŞEKKÜRLER!
Arkadaşlar, bana nerede batırdığımı söyleyin ... Anlayamıyorum. Veriler göstergeden okunur, ancak daha sonra çalışmaz. bulamıyorum. Biri bana neyi anlamadığımı söyleyebilir mi:
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж// Поиск экстремумов//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжvoid SaveDataIND( double &TempIND[], int nBars)
{
ArrayResize (TempIND,nBars); // Размер массива под переданный в ф-цию размерfor ( int j= 0 ; j<=nBars- 1 ; j++)
{
TempIND[j]= iAD ( NULL , PERIOD_M5 ,j); // Запишем данные инд. в цикле в массивPrint ( "TempIND[" ,j, "] = " ,TempIND[j]);
}
//------------------------------------------------------------------// Заполнение массивов данными о пичках и донышках//------------------------------------------------------------------double PeakUP[], PeakDN[]; // Объявляем массивы пичков/донышковint i, k, l, asize;
if (TempIND[nBars- 1 ]<TempIND[ 1 ]) // Если последний бар массива ниже первого - тенденция вверх
{
k= 0 ; // Инициализируем индекс массива донышковfor (i= 3 ; i<=nBars- 1 ; i++) // Пробежимся по массиву значений
{
if (TempIND[i]>TempIND[i- 1 ] &&
TempIND[i- 1 ]<TempIND[i- 2 ]) // Нашли донышко
{
PeakDN[k]=TempIND[i- 1 ]; // Заносим его значение в массив донышек
k++; // Увеличиваем индекс массива донышков
}
}
asize= ArraySize (PeakDN);
for (l= 0 ; l<=asize; l++)
{
Print ( "PeakDN[" ,l, "] = " ,PeakDN[l]);
}
}
if (TempIND[nBars- 1 ]>TempIND[ 1 ]) // Если последний бар массива выше первого - тенденция вниз
{
k= 0 ; // Инициализируем индекс массива пичковfor (i= 3 ; i<=nBars- 1 ; i++) // Пробежимся по массиву значений
{
if (TempIND[i]<TempIND[i- 1 ] &&
TempIND[i- 1 ]>TempIND[i- 2 ]) // Нашли пичёк
{
PeakUP[k]=TempIND[i- 1 ]; // Заносим его значение в массив пичков
k++; // Увеличиваем индекс массива пичков
}
}
asize= ArraySize (PeakUP);
for (l= 0 ; l<=asize; l++)
{
Print ( "PeakUP[" ,l, "] = " ,PeakUP[l]);
}
}
}
Günlükte, her zaman gösterge değerleri dizisinin verilerini görüntüler, ancak sonra - dur ... ... sadece bir sıfır hücre... ve sadece sıfır... Lütfen yardım edin...
Arkadaşlar, bana nerede batırdığımı söyleyin ... Anlayamıyorum. Veriler göstergeden okunur, ancak daha sonra çalışmaz. bulamıyorum. Biri bana neyi anlamadığımı söyleyebilir mi:
Günlükte, her zaman gösterge değerleri dizisinin verilerini görüntüler, ancak sonra - dur ... ... sadece bir sıfır hücre... ve sadece sıfır... Lütfen yardım edin...
Artyom, şimdiye kadar ilk hatayı buldum:
PeakUP[] ve PeakDN[] dizileri belirli sayıda eleman olmadan bildirilir, yani onları hiç hücresiz yarattınız ve sonra kodda onlara bir şeyler yazmaya çalışıyorsunuz, ancak eleman içermedikleri için, doğal olarak içlerinde hiçbir şey kaydedilmez ve baskı her zaman sıfırdır. Tam olarak kaç tepe ve vadi olacağını bilmediğiniz için bunu yapmanızı, yeni veriler geldiğinde bu dizilerdeki eleman sayısını dinamik olarak artırmanızı öneririm, düzeltilen alanlar kırmızı ile vurgulanır.
if (TempIND[nBars- 1 ]<TempIND[ 1 ]) // Если последний бар массива ниже первого - тенденция вверх
{
k= 0 ; // Инициализируем индекс массива донышковfor (i= 3 ; i<=nBars- 1 ; i++) // Пробежимся по массиву значений
{
if (TempIND[i]>TempIND[i- 1 ] &&
TempIND[i- 1 ]<TempIND[i- 2 ]) // Нашли донышко
{
ArrayResize (PeakDN, k + 1 );
PeakDN[k]=TempIND[i- 1 ]; // Заносим его значение в массив донышек
k++; // Увеличиваем индекс массива донышков
}
}
asize= ArraySize (PeakDN);
for (l= 0 ; l< asize; l++)
{
Print ( "PeakDN[" ,l, "] = " ,PeakDN[l]);
}
}
if (TempIND[nBars- 1 ]>TempIND[ 1 ]) // Если последний бар массива выше первого - тенденция вниз
{
k= 0 ; // Инициализируем индекс массива пичковfor (i= 3 ; i<=nBars- 1 ; i++) // Пробежимся по массиву значений
{
if (TempIND[i]<TempIND[i- 1 ] &&
TempIND[i- 1 ]>TempIND[i- 2 ]) // Нашли пичёк
{
ArrayResize (PeakUP, k + 1 );
PeakUP[k]=TempIND[i- 1 ]; // Заносим его значение в массив пичков
k++; // Увеличиваем индекс массива пичков
}
}
asize= ArraySize (PeakUP);
for (l= 0 ; l< asize; l++)
{
Print ( "PeakUP[" ,l, "] = " ,PeakUP[l]);
}
}
ArraySize() işlevi , dizi öğelerinin toplam sayısını döndürür, ancak dizin oluşturma sıfırdan başladığından, gerçek öğe sayısı ArraySize()- 1'dir.
Ve yine sorularla, ben buradayım) Soru şimdi aşağıdaki niteliktedir. (Daha önce yardımcı olan herkese teşekkürler), şimdi Uzman Danışmanım, verilerin hangi sembolden alındığını belirleyerek göstergelerden global değişkenlerden veri alıyor. Bu verilere dayanarak, Uzman Danışmanda - global değişkenin verilerini aldığım para biriminde bir sipariş açmayı belirtiyorum. Bir çizelgeye bir Expert Advisor, diğerlerine ise göstergeler ekliyorum,... veri alıyor, ancak yalnızca üzerinde durduğu para birimi (Uzman'ın kendisi) için bir emir açıyor... anladığım kadarıyla, bu olmalı bir multi-uzman,... nasıl yapılacağı veya en azından diğer çiftlerde emir açabilmesi için belirtilmesi gerektiği. Birkaç Uzman Danışman çalıştırmak istemiyorum ((
Infinity : ...diğer çiftlerde emir açabilmesi için nasıl yapılacağı veya en azından içinde ne belirtilmesi gerektiği. Birkaç Uzman Danışman çalıştırmak istemiyorum ((
OrderSend (Döviz çiftinin sembolik adı .... kuyu ve diğer parametreler ...)
PeakUP[] ve PeakDN[] dizileri belirli sayıda eleman olmadan bildirilir, yani onları hiç hücresiz yarattınız ve sonra kodda onlara bir şeyler yazmaya çalışıyorsunuz, ancak eleman içermedikleri için, doğal olarak içlerinde hiçbir şey kaydedilmez ve baskı her zaman sıfırdır. Tam olarak kaç tepe ve vadi olacağını bilmediğiniz için bunu yapmanızı, yeni veriler geldiğinde bu dizilerdeki eleman sayısını dinamik olarak artırmanızı öneririm, düzeltilen alanlar kırmızı ile vurgulanır.
ArraySize() işlevi, dizi öğelerinin toplam sayısını döndürür, ancak dizin oluşturma sıfırdan başladığından, gerçek öğe sayısı ArraySize()- 1'dir.
Anadolu! Bir anıt dikmeniz gerekiyor - anavatanınızda bir büstü! En ilginci TempIND dizisi için yaptım ama unuttuğum ve gecenin yarısını üzerlerine büyü yaparak geçirdiğim kişiler için... :))
Çok açık, kitaba bakıyorum ve göremiyorum, işe yarıyor, teşekkürler! Sorulara devam ediyorum. Hepsi aynı global değişkenler hakkında. Bu yüzden göstergeye aşağıdaki koşulu ekledim:
Göstergenin hangi para biriminde olduğuna bağlı olarak, hangi global değişkene değer atanacağını belirlemek istiyorum.
Anladığım kadarıyla GlobalVariableSet (valuta, param) global değişkeninde (valuta) adı kendisine yukarıda atanan değeri içermelidir
EA kodunda global değişkeni tekrar çağırırım
stringvaluta="değer";
int i=GlobalVariableGet(valuta); // ama değeri alamadım,.... yani 0 alıyorum. Belki global bir değişkenin adını bu şekilde değiştirmek mümkün değildir?
net değil.. EA gösterge tarafından kaydedilen değeri kontrol ederse, EA'daki valuta parametresinin değerinin cihazın adına karşılık gelmesi gerektiğini varsaymak mantıklı olacaktır, yani. EURUSD veya GBPUSD..
buna göre, eğer EA mevcut enstrümanın değerini kontrol ederse, o zaman
dizi değeri = Sembol();
int i= GlobalVariableGet (değer);Yardımdan başlamak için
Varolan bir global değişkenin değerini veya hata durumunda 0 değerini döndürür. Bir hata hakkında bilgi almak için GetLastError() işlevini çağırmanız gerekir.
GV içeriğini görüyor ancak alamıyor musunuz?
Pekala, hem isim hem de değer global değişkenlerde gösteriliyor, .... Sadece kodumda global bir değişkenin değerini global bir değişkenin (parametre-adı) aracılığıyla alamıyorum, bir tane belirtmem gerekiyor. dize adı, o zaman sorun yok.
Pekala, hem isim hem de değer global değişkenlerde gösteriliyor, .... Sadece kodumda global bir değişkenin değerini global bir değişkenin (parametre-adı) aracılığıyla alamıyorum, bir tane belirtmem gerekiyor. dize adı, o zaman sorun yok.
Yer değiştirmek
if (symb==EUR) {valuta=EUR;}
üzerinde
if (symb=="EURUSD") {valuta="EUR";}
net değil.. EA gösterge tarafından kaydedilen değeri kontrol ederse, EA'daki valuta parametresinin değerinin cihazın adına karşılık gelmesi gerektiğini varsaymak mantıklı olacaktır, yani. EURUSD veya GBPUSD..
buna göre, eğer EA mevcut enstrümanın değerini kontrol ederse, o zaman
dizi değeri = Sembol();
int i=GlobalVariableGet(valuta);Evet, işe yarıyor)) Her şey göründüğünden daha basit)
Buraya gelen ve yardım eden herkese çok TEŞEKKÜRLER!
Arkadaşlar, bana nerede batırdığımı söyleyin ... Anlayamıyorum. Veriler göstergeden okunur, ancak daha sonra çalışmaz. bulamıyorum. Biri bana neyi anlamadığımı söyleyebilir mi:
Günlükte, her zaman gösterge değerleri dizisinin verilerini görüntüler, ancak sonra - dur ...
... sadece bir sıfır hücre... ve sadece sıfır... Lütfen yardım edin...
kusura bakmayın hata çıktı ..... işte orjinali
Odysseus, eğer orada değillerse, eklemeniz gerekir :))
Arkadaşlar, bana nerede batırdığımı söyleyin ... Anlayamıyorum. Veriler göstergeden okunur, ancak daha sonra çalışmaz. bulamıyorum. Biri bana neyi anlamadığımı söyleyebilir mi:
Günlükte, her zaman gösterge değerleri dizisinin verilerini görüntüler, ancak sonra - dur ...
... sadece bir sıfır hücre... ve sadece sıfır... Lütfen yardım edin...
Artyom, şimdiye kadar ilk hatayı buldum:
PeakUP[] ve PeakDN[] dizileri belirli sayıda eleman olmadan bildirilir, yani onları hiç hücresiz yarattınız ve sonra kodda onlara bir şeyler yazmaya çalışıyorsunuz, ancak eleman içermedikleri için, doğal olarak içlerinde hiçbir şey kaydedilmez ve baskı her zaman sıfırdır. Tam olarak kaç tepe ve vadi olacağını bilmediğiniz için bunu yapmanızı, yeni veriler geldiğinde bu dizilerdeki eleman sayısını dinamik olarak artırmanızı öneririm, düzeltilen alanlar kırmızı ile vurgulanır.
ArraySize() işlevi , dizi öğelerinin toplam sayısını döndürür, ancak dizin oluşturma sıfırdan başladığından, gerçek öğe sayısı ArraySize() - 1'dir.
...diğer çiftlerde emir açabilmesi için nasıl yapılacağı veya en azından içinde ne belirtilmesi gerektiği. Birkaç Uzman Danışman çalıştırmak istemiyorum ((
Artyom, şimdiye kadar ilk hatayı buldum:
PeakUP[] ve PeakDN[] dizileri belirli sayıda eleman olmadan bildirilir, yani onları hiç hücresiz yarattınız ve sonra kodda onlara bir şeyler yazmaya çalışıyorsunuz, ancak eleman içermedikleri için, doğal olarak içlerinde hiçbir şey kaydedilmez ve baskı her zaman sıfırdır. Tam olarak kaç tepe ve vadi olacağını bilmediğiniz için bunu yapmanızı, yeni veriler geldiğinde bu dizilerdeki eleman sayısını dinamik olarak artırmanızı öneririm, düzeltilen alanlar kırmızı ile vurgulanır.
ArraySize() işlevi, dizi öğelerinin toplam sayısını döndürür, ancak dizin oluşturma sıfırdan başladığından, gerçek öğe sayısı ArraySize() - 1'dir.