Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 841

 
Cevabınız için teşekkürler, ancak bunu hangi mql4 işlevlerinin uygulayabileceğini kastettim?
 
MiroshA :
Cevabınız için teşekkürler, ancak bunu hangi mql4 işlevlerinin uygulayabileceğini kastettim?
farklı. Kendiniz için geliştirmeye alacağınız algoritmaya bağlı olarak.
 

merhaba. EA'm çok sayıda döviz çifti penceresine bağlı olarak çalışır ve geri çekilmenin daha olası olduğu yerlerde satın alır. Expert Advisor'ın çalışan kopyaları arasında bilgi alışverişi yapmak için global değişkenleri kullanıyorum. veriler her saniye güncellenir. uzmanın modernizasyonu ile daha fazla veri alışverişine ihtiyaç duyulmaktadır. ve en önemlisi, gv değişkenleri yalnızca double türe sahip olabilir ve şimdi döviz çiftinin adını aktarmam gerekiyor ve oraya bir dize ekleyemezsiniz. Tüm bu bilgileri bir dosyaya atmayı düşündüm ama yapmadım çünkü sabit diske çok sık erişim olurdu. RAM üzerinden herhangi bir geçici çözüm var mı?

Şimdiye kadar bulduğum tek seçenek, her para birimine belirli bir varsayılan numara vermek ve aynı global değişkenleri kullanmak. örneğin bunun gibi 01023334455 , burada 01 - usd , 02 eur , 3, 4, 5 - değiş tokuş için veriler. belki daha sofistike bir yolu vardır, ne önerirsiniz?

 
pycha :

merhaba. EA'm çok sayıda döviz çifti penceresine bağlı olarak çalışır ve geri çekilmenin daha olası olduğu yerlerde satın alır. Expert Advisor'ın çalışan kopyaları arasında bilgi alışverişi yapmak için global değişkenleri kullanıyorum. veriler her saniye güncellenir. Uzmanın modernizasyonu ile birlikte daha fazla veri alışverişine ihtiyaç duyulmaktadır. ve en önemlisi, gv değişkenleri yalnızca double türe sahip olabilir ve şimdi döviz çiftinin adını aktarmam gerekiyor ve oraya bir dize ekleyemezsiniz. Tüm bu bilgileri bir dosyaya atmayı düşündüm ama yapmadım çünkü sabit diske çok sık erişim olurdu. RAM üzerinden herhangi bir geçici çözüm var mı?

Şimdiye kadar bulduğum tek seçenek, her para birimine belirli bir varsayılan numara vermek ve aynı global değişkenleri kullanmak. örneğin bunun gibi 01023334455 , burada 01 - usd , 02 eur , 3, 4, 5 - değiş tokuş için veriler. belki daha sofistike bir yolu vardır, ne önerirsiniz?

Ve değişken adına bir sembol ekle? Buna göre, böyle bir GV değişkeni varsa ... ve buna bir değer verebilirsiniz. Böylece 1 değişken 2 atama gerçekleştirir.

 

Sadece programın daha çok yönlü olmasını istiyorum. bu şekilde 01 -usd, 02 eur dosyasını dosyaya sürebilirsiniz. ve usdaud penceresi açıldığında aud'un listede olmadığını görecek ve ona 03 sayısını atayarak bu bilgiyi bir dosyaya kaydedecektir. bu şekilde, denenmemiş yeni bir para biriminde her açtığımda programı yeniden derleme görevinden kendimi mahrum bırakıyorum.

 
AlexeyVik :

Ve değişken adına bir sembol ekleyelim mi? Buna göre, böyle bir GV değişkeni varsa ... ve buna bir değer verebilirsiniz. Böylece 1 değişken 2 atama gerçekleştirir.


Bu seçeneğin neden çalışmadığını açıklayacağım. bir kez belirli bir süre için, program varsa gereksiz çöpleri çıkarmak için tüm değişkenlerini siler. GV1 GV2 ve böylece bitene kadar. Böylece programın başka bir kopyası tarafından oluşturulan bir değişken varsa, o da silinecek ve 1 saniye sonra geri yüklenecektir. ve karakter bazında bir değişken adı yaparsanız, her şeyi kaldırmak için tüm olası karakter varyasyonlarını gözden geçirmeniz gerekir.



konudan sapmıştır. Sorunun özü - GV dışında başka hileler var mı - programın bir kopyasından diğerine RAM aracılığıyla veri aktarmanıza izin veren değişkenler var mı?

 
pycha :

Sadece programın daha çok yönlü olmasını istiyorum. bu şekilde 01 -usd, 02 eur dosyasını dosyaya sürebilirsiniz. ve usdaud penceresi açıldığında aud'un listede olmadığını görecek ve ona 03 sayısını atayarak bu bilgiyi bir dosyaya kaydedecektir. bu şekilde, denenmemiş yeni bir para biriminde her açtığımda programı yeniden derleme görevinden kendimi mahrum bırakıyorum.


Neden atama? Bir karakter listesi var. Sıralamadan bağımsızdır. Sembol numarasını listede bulabileceğiniz ve kullanabileceğiniz ortaya çıktı.
 
tamam herkese teşekkürler
 
pycha :

Bu seçeneğin neden çalışmadığını açıklayacağım. bir kez belirli bir süre için, program varsa gereksiz çöpleri çıkarmak için tüm değişkenlerini siler. GV1 GV2 ve böylece bitene kadar. Böylece programın başka bir kopyası tarafından oluşturulan bir değişken varsa, o da silinecek ve 1 saniye sonra geri yüklenecektir. ve karakter bazında bir değişken adı yaparsanız, her şeyi kaldırmak için tüm olası karakter varyasyonlarını gözden geçirmeniz gerekir.



konudan sapmıştır. Sorunun özü - GV dışında başka hileler var mı - programın bir kopyasından diğerine RAM aracılığıyla veri aktarmanıza izin veren değişkenler var mı?

Peki o zaman kütüphanede bir yapı oluşturmaya çalışın, doldurun ve oradan okuyun.
 

İyi akşamlar! Aşağıdaki kodu anlamama yardımcı olun, sat neden üç açılış seçeneği olduğu ile aynı prensibe göre yazılmıştır, çünkü emir mevcut çubukta açıldığında ve riskle kapatıldığında emir açmaktan kaçınma seçeneği ile kafam karışmak zorunda kaldı. -Bedava,

ama sinyal kalıyor ve açılış tekrar devam ediyor, bu yüzden böyle yazmak zorunda kaldım. Ve sorun şu ki sadece bir alım satım emri açılıyor ve bu kadar, sonra sessizlik, bir hata bulamadım. Şimdiden teşekkürler.

 //+------------------------------------------------------------------+
//| Open Order Buy                                                   |
//+------------------------------------------------------------------+
if (! OrdersTotal ()== true )
{
if (PLO0>S0 && PLO1<=S1 && PLO2<S2)
if (!OrdersHistoryTotal()== true )
{
ticket= OrderSend ( Symbol (),OP_BUY,Lot,Ask, 3 ,StopLossBuy, 0 , NULL , 0 , 0 , clrGreen );
RefreshRates();
{
if (ticket< 0 )
{
Print ( "OrderSend OP_BUY завершилась с ошибкой #" , GetLastError ());
}
else
Print ( "Функция OrderSend OP_BUY успешно выполнена" );
}
}
if (OrdersHistoryTotal()== true )
if ( OrderSelect (ticket,SELECT_BY_TICKET)> 0 && OrderCloseTime()> 0 && OrderType()==OP_BUY && OrderSymbol()== Symbol ()&& PLO0>S0 && PLO1<=S1 && PLO2<S2 && OrderCloseTime()< Time[ 0 ])
{
ticket= OrderSend ( Symbol (),OP_BUY,Lot,Ask, 3 ,StopLossBuy, 0 , NULL , 0 , 0 , clrGreen );
RefreshRates();
{
if (ticket< 0 )
{
Print ( "OrderSend OP_BUY завершилась с ошибкой #" , GetLastError ());
}
else
Print ( "Функция OrderSend OP_BUY успешно выполнена" );
}
}
if (OrdersHistoryTotal()== true )
if ( OrderSelect (ticket,SELECT_BY_TICKET)> 0 && OrderCloseTime()> 0 && !OrderType()==OP_BUY && OrderSymbol()== Symbol ()&& PLO0>S0 && PLO1<=S1 && PLO2<S2)
{
ticket= OrderSend ( Symbol (),OP_BUY,Lot,Ask, 3 ,StopLossBuy, 0 , NULL , 0 , 0 , clrGreen );
RefreshRates();
{
if (ticket< 0 )
{
Print ( "OrderSend OP_BUY завершилась с ошибкой #" , GetLastError ());
}
else
Print ( "Функция OrderSend OP_BUY успешно выполнена" );
}
}
}
Neden: