[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 112

 

İyi akşamlar!

Basit bir sorum var.

Uzman Danışman hangi nedenlerle başlatma işleminden sonra start()'a gidemez; ?

Belki birisi böyle bir sorunla karşılaştı?

init()'ten; çıkış dönüşü (0); .

Cevabınız için şimdiden teşekkür ederiz!

 
Ve onun "Başlangıca gitmediğini" nasıl bildin?
 
BBSL :

İyi akşamlar!

Basit bir sorum var.

Uzman Danışman hangi nedenlerle başlatma işleminden sonra start()'a gidemez; ?

Belki birisi böyle bir sorunla karşılaştı?

init()'ten; çıkış dönüşü (0); .

Cevabınız için şimdiden teşekkür ederiz!

Alıntı yok - başlangıç yok. Başlangıca gitmek için keneler + uzmanların izni gereklidir.
 

Herkese merhaba ve kâr!

Böyle bir problemim var.

Ev bilgisayarımda grafiği işaretliyorum. Başka bir bilgisayara nasıl aktarılır - hangi dosyanın üzerine yazılmalıdır?

Çıktı türü, tüm MT4 klasörünü yeniden yazmak ve ardından başka bir bilgisayara yeni bir adla yazmaktır - karmaşık olduğu için sığmaz. Burada ilginç olan, klasörü eski isimle başka bir bilgisayarda bırakırsam, grafiklerde yeni bir şey olmaz...

Kim bilir, yardım edin!

 

BBSL , "start();" yazardım - Aynısını sen mi yazdın? kolona gerek yok. artık kıvırcık parantez yok

kiimar, Danışman kapandı mı? evet ise, koda bakmanız gerekir

 
BBSL :

İyi akşamlar!

Basit bir sorum var.

Uzman Danışman hangi nedenlerle başlatma işleminden sonra start()'a gidemez; ?

Belki birisi böyle bir sorunla karşılaştı?

init()'ten; çıkış dönüşü (0); .

Cevabınız için şimdiden teşekkür ederiz!

Cevap daha da basit: Bir işlev gövdesinin sonunda bir dönüş (0) ifadesinin bulunması, bu ifadenin hiç yürütüleceği anlamına gelmez.
 

Siparişin TakeProfit veya StopLoss tarafından tetiklenip tetiklenmediği nasıl kontrol edilir? Cevap için teşekkürler!

 
BBSL :

Uzman Danışman hangi nedenlerle başlatma işleminden sonra start()'a gidemez; ?

Belki birisi böyle bir sorunla karşılaştı?

init() içinde karmaşık hesaplamalar veya takas geçmişi var veya terminalde terminali asan veya...

Genel olarak, kodu başlatmak için biraz zaman var, tam olarak ne kadar olduğunu söylemeyeceğim, ancak kodun başlatılması sırasında terminal kodu kesintiye uğratırsa, logda şöyle bir hata olacaktır: " ... . uzmanda zaman aşımı ...."

terminal günlükte herhangi bir hata göstermiyorsa, başlatma başarılı olmuştur ve start() işlevinin kendisini kontrol etmek kolaydır - ilk satıra yazın start() : Yazdır ("yeni onay");

 
Sayod , hangi TF ile ve hangi parametrelerle işlem yaptınız?
 
Jaguar1974 :

Siparişin TakeProfit veya StopLoss tarafından tetiklenip tetiklenmediği nasıl kontrol edilir? Cevap için teşekkürler!


Emirlerin geçmişini kontrol edin, kapanış fiyatı SL veya TP'ye eşitse - bu demektir ki ..., AMA kapalı bir emrin karını kontrol etmenin daha kolay olacağını düşünüyorum - > 0 almak anlamına geliyorsa, aksi takdirde ...

İşte benzer bir kod parçası:

 double history(){
int time = 0 ; double profit = 0 ; //обьявляем необходимые нам переменные куда мы положим интересующие нас характеристики ордера
for ( int i = OrdersHistoryTotal();i>= 0 ;i--){ // Перебираем все закрытые ордера
   if ( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)){ //если ордер с таким номером (i) в списке закрытых ордеров есть ( не путать с тикетом)
     if (OrderSymbol() == Symbol ()){ //если выбранный ордер был открыт по нашей валютной паре
       if (time<OrderCloseTime()){ //(сравниваем его с хранящимся в пероеменной time) 
        time=OrderCloseTime(); //если время закрытия ордера больше - ложим его в переменную
        profit=OrderProfit(); //и заодно запоминаем прибыль ордера
      }
    }
  }
}
//по окончании этой процедуры в наших переменных будут сидет наибольшее время закрытия, и его профит. Или по нулям если история чистая.
//теперь мы можем выставлять условия в зависимости от результата процедуры
   
if (profit == 0 &&time == 0 ){ //действия если история чистая

}
if (profit >= 0 ){ //действия если последний ордер был прибыльным, или нулевым

}
if (profit <   0 ){ //действия если последний ордер был убыточным

}
return ( 0 );
}
Neden: