[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 203

 
smartemiy :

Çocuklar!

artan lot ile her 40. sipariş nasıl yapılır? :: piyasa ve ertelenmiş

belki bu yüzden?

Pek değil , geçmişteki siparişlerin sayısını saymanız gerekiyor a = (OrdersHistoryTotal()+ 1) % 40

Bu, aynı anda kaç siparişin açılabileceğini hesaba katmaz, aksi takdirde Sipariş Toplamını eklemeniz gerekir (muhtemelen eksi bekleyen siparişler).

 
splxgf :

Pek değil, geçmişteki siparişlerin sayısını saymanız gerekiyor a = (OrdersHistoryTotal()+ 1) % 40

Bu, aynı anda kaç siparişin açılabileceğini hesaba katmaz, aksi takdirde Sipariş Toplamını eklemeniz gerekir (muhtemelen eksi bekleyen siparişler).


Ve diğer enstrümanlar veya diğer danışmanlar için de pozisyonlar açıldıysa ? ne yazdığını düşün
 
Figar0 :

Başlangıç olarak, parti hesaplama işlevi, başlatma işlevinin içinde bildirilir. Onu dışarı çıkar. O zaman bildirilmemiş bir değişkenle birkaç hata olacak, ama evet, onlarla kendiniz ilgileneceğinizi düşünüyorum.
Bir soru daha, lot hesaplaması hangi fonksiyonda bildirilmelidir? init, deinit?
 
skyjet :
Bir soru daha, lot hesaplaması hangi fonksiyonda bildirilmelidir? init, deinit?

Ayrı bir işlev yapmak ve gerektiğinde kullanmak daha iyidir (yeni bir pozisyon açmadan önce)
 
EA'daki kod bolluğu (optimize edilmemiş) nedeniyle bilgisayar yavaşlayabilir mi? Yani, büyük bir kodu varsa, işlemlerin açılması ve danışman tarafından karar verme süreci yavaşlar mı?
 
Vinin :

Ayrı bir işlev yapmak ve gerektiğinde kullanmak daha iyidir (yeni bir pozisyon açmadan önce)
Victor, tavsiyene uyarak bir işlev ekledi. Şimdi derleme yapmıyor.
 void CheckForOpen()
double Lots()
  {
   double lot;
   lot=( AccountFreeMargin ()* AccountLeverage ()*Risk)/( MarketInfo ( Symbol (), MODE_LOTSIZE));
   lot= NormalizeDouble (lot, 1 );
   return (lot);
  }
 

Kene geçmişini kaydetme



avatar
1
22.09.2011 17:32

Herkese iyi günler!

Soru şu ki - bir kene geçmişi kayıt komut dosyası var

...

FileSeek(ExtHandle,0,SEEK_END);

FileWrite(ExtHandle, TimeToStr(TimeCurrent(), TIME_DATE | TIME_SECONDS), Bid, Ask, iVolume(Symbol(), NULL, 0));

...

şöyle yazıyor:

...

2011.08.15 08:38:49;76.936;76.946;1389

2011.08.15 08:38:51;76.934;76.953;1390
2011.08.15 08:38:56;76.929;76.958;1391
2011.08.15 08:38:56;76.935;76.945;1392

...

Yani, minimum zaman biriminin bir saniye olduğu ortaya çıktı. Öyleyse soru şu - keneleri milisaniye cinsinden yazmanın bir yolu var mı?

Şimdiden teşekkürler

 
1
22.09.2011 17:32

Yani, minimum zaman biriminin bir saniye olduğu ortaya çıktı. Öyleyse soru şu - keneleri milisaniye cinsinden yazmanın bir yolu var mı?


GetTickCount'a bakın... veya Windows işlevine bakın
 
skyjet :
Victor, tavsiyene uyarak bir işlev ekledi. Şimdi derleme yapmıyor.

 void CheckForOpen()
  {



  }

double Lots()
  {
   double lot;
   lot=( AccountFreeMargin ()* AccountLeverage ()*Risk)/( MarketInfo ( Symbol (), MODE_LOTSIZE));
   lot= NormalizeDouble (lot, 1 );
   return (lot);
  }
İç içe işlevlere izin verilmez
 
Vinin :

İç içe işlevlere izin verilmez
Bu, iç içe geçmiş bir işlev değil, temel MACD Sample Expert Advisor'ın bir parçasıdır. Hesaplanmış bir lot eklemeye çalışıyorum. Ana ve tek start() işlevi