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

 
Link_x :
Teknik göstergelerdeki fonksiyonların yanlış anlaşılmasından kaynaklandığını düşünüyorum. Eğer bunu anlamıyorsam, o zaman sizden bana iletilen bağlantıların "ötesi" olan bilgileri kullanarak, yazarak ve İnternet üzerinden göndererek anlamalıyım.
"Çalış, çalış ve tekrar çalış!" - Bu cümleyi seviyorum. )))

Öyleyse, diyelim ki CCI'yi meta düzenleyicide, net olmayan her şeyi - referans kitabında açın (anlaşılmaz bir işleve veya ifadeye tıklayın ve F1'e basın). Bu, öğrenmeyi çok daha eğlenceli hale getirecek.
 

extern int MartinStep = 2;
extern double LOT = 0.01;


double GetLot(){

int time = 0;double profit = 0; double lots = 0; double Lot = 0;
for(int i = OrdersHistoryTotal()-1;i>=0;i--){
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){
if(OrderSymbol() == Symbol()&& OrderMagicNumber() == Magic){
if(time<OrderCloseTime()){
time=OrderCloseTime();
profit=OrderProfit();
lots = OrderLots();
}
}
}
}


if(profit == 0 &&time == 0)
{
Lot = LOT;
}
if(profit >= 0)
{
Lot = LOT;
}
if(profit < 0 )
{
Lot = NormalizeDouble (lots*MartinStep,2);
}

return(Lot);
}
Lütfen işlevdeki hataları düzeltmeme yardım edin. EA birkaç siparişi doğru bir şekilde açıyor ve ardından günlükte ''geçersiz lot miktarı'' hatası görünüyor.Neyin yanlış olduğunu anlayamıyorum.
 
Trader7777 :


lots = OrderLots();

Lot = NormalizeDouble (lots*MartinStep,2);

Lütfen işlevdeki hataları düzeltmeme yardım edin. EA birkaç siparişi doğru bir şekilde açıyor ve ardından günlükte ''geçersiz lot miktarı'' hatası görünüyor.Neyin yanlış olduğunu anlayamıyorum.

Ya operatör lotlarına hiç ulaşmadı = OrderLots(); ve çok hala =0. Her iki lot*MartinStep izin verilen maksimum lot boyutunu aştı.
 

Anladım, hata burada.

if(profit >= 0)


eşittir işareti koymak gerekiyordu, çünkü 0'da kapanan siparişten sonra danışman ne yapacağını bilmiyordu)
 

Herkese selam! Günün sonunda danışmanın yeniden başlatılmasını nasıl uygulayacağımı söyle? Yani init() içinde belirli bir zamanda tekrarlanması gereken bazı eylemler vardır. Eh, onları başlangıçta () reçete etmek istemiyorum. Bunun yerine, danışmanı yeniden başlatmanın teorik olasılığı ilgi çekicidir. Şimdiden teşekkürler.

 
Pyro :

Herkese selam! Günün sonunda danışmanın yeniden başlatılmasını nasıl uygulayacağımı söyle? Yani init() içinde belirli bir zamanda tekrarlanması gereken bazı eylemler vardır. Eh, onları start() içinde reçete etmek istemiyorum. Bunun yerine, danışmanı yeniden başlatmanın teorik olasılığı ilgi çekicidir. Şimdiden teşekkürler.

init()'i belirli bir zamanda çağırmayı denediniz mi?
 
Evet aklıma gelmedi :( Teşekkürler!!
 
Sevgili, söyle bana, danışman yeniden yüklendiğinde (tablodan çıkarılıp tekrar konulduğunda), bayraklar ve statik değişkenler sıfırlanır veya danışmanın hafızasında kalır mı?
 
Forexman77 :
Sevgili, söyle bana, danışman yeniden yüklendiğinde (tablodan çıkarılıp tekrar konulduğunda), bayraklar ve statik değişkenler sıfırlanır veya danışmanın hafızasında kalır mı?

Başlatma, Global Değişkenler dışındaki her şeyi sıfırlar
 
Pyro :

Başlatma, Global Değişkenler dışındaki her şeyi sıfırlar
Ve burada GV'nin bir danışman değil, terminal değişkenler olduğunu açıklığa kavuşturmak gerekiyor.
Neden: