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

 

Beşli ile birlikte olan çocuklar arkadaş canlısıdır. Bak, lütfen şampiyonluk göstergesim. Sıkıştım - karar veremiyorum ...

4'ten beşe çeviri - orada forumda - sessizlik. Kodu şubeye gönderdim - bu sayfada . Açıklama - bir öncekinde.

Sayesinde.

 
bool isCloseLastPosByTake(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   ocp, otp;
  int      dg, i, j=-1, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
  if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {                     // !!!!!!!!?????? ХОТЬ КТО-ТО МОЖЕТ ОБЪЯСНИТЬ ЗНАЧЕНИЕ СТРОК КОДА, КОТОРЫЕ НАЧИНАЮТСЯ С ЭТОГО МЕСТА?
    dg=MarketInfo(sy, MODE_DIGITS);
    if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
    ocp=NormalizeDouble(OrderClosePrice(), dg);
    otp=NormalizeDouble(OrderTakeProfit(), dg);
    if (ocp==otp) return(True);
  }
  return(False);
 
okvseok:

bool isCloseLastPosByTake(string sy="", int op=-1, int mn=-1) {
 datetime t;
 double ocp, otp;
 int dg, i, j=-1, k=OrdersHistoryTotal();

 if (sy=="0") sy=Symbol();
 for (i=0; i<k; i++) {
 if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
 if (OrderSymbol()==sy || sy=="") {
 if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
 if (op<0 || OrderType()==op) {
 if (mn<0 || OrderMagicNumber()==mn) {
 if (t<OrderCloseTime()) {
 t=OrderCloseTime();
 j=i;
 }
 }
 }
 }
 }
 }
 }
 // !!!!!!!!?????? ХОТЬ КТО-ТО МОЖЕТ ОБЪЯСНИТЬ ЗНАЧЕНИЕ СТРОК КОДА, КОТОРЫЕ НАЧИНАЮТСЯ С ЭТОГО МЕСТА?
 if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {// Если очередной ордер истории торгов выбран, то
 dg=MarketInfo(sy, MODE_DIGITS);// переменная dg принимет значение дигитса по валютной паре, имя которой лежит в переменной sy
 // далее я возможно не верно расставил приоритет скобок, но по сути должно быть так:
 if (dg==0){// если дигитс равен нулю, то
 if(StringFind(OrderSymbol(),"JPY")<0){// если в имени инструмента ордера найдена подстрока то (только это не правильно написано - функция может верноуть значение > 1)
 dg=4;// дигитс принимает значение = 4
 }
 else{// иначе
 dg=2;// дигитс принимает значение = 2
 }
 }
 ocp=NormalizeDouble(OrderClosePrice(), dg);// нормализация цены закрытия ордера
 otp=NormalizeDouble(OrderTakeProfit(), dg);// нормализация цены ТейкПрофита ордера
 if (ocp==otp) return(True);
 }
 return(False);// команда вернуть из подпрограммы значение "ложь"
 }
 
drknn :

bool isCloseLastPosByTake(string sy="", int op=-1, int mn=-1) {
tarihsaat t;
çift işlem, otp;
int dg, i, j=-1, k=OrdersHistoryTotal();

if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==dk) {
if (t<SiparişKapatZamanı()) {
t=SiparişKapatZamanı();
j=i;
}
}
}
}
}
}
}
// !!!!!!!!!!!!?????? BURADA BAŞLAYAN KOD SATIRLARININ ANLAMINI AÇIKLAYABİLİR Mİ?
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {// İşlem geçmişinin bir sonraki sırası seçilirse, o zaman
dg=MarketInfo(sy, MODE_DIGITS);// dg değişkeni, adı sy değişkeninde olan döviz çifti için rakamın değerini alacaktır.
// sonra, parantezlere doğru bir şekilde öncelik vermeyebilirim, ama aslında şöyle olmalı:
if (dg==0){// rakamlar sıfır ise, o zaman
if(StringFind(OrderSymbol(),"JPY")<0){// siparişin aracının adında bir alt dize bulunursa (yalnızca bu doğru yazılmaz - işlev > 1 değeri döndürebilir)
dg=4;// basamaklar = 4 değerini alır
}
başka{// başka
dg=2;// basamaklar = 2 değerini alır
}
}
ocp=NormalizeDouble(OrderClosePrice(), dg);// emir kapanış fiyatının normalleştirilmesi
otp=NormalizeDouble(OrderTakeProfit(), dg);// siparişin normalleştirilmesi TakeProfit fiyatı
if (ocp==otp) dönüş(Doğru);
}
return(False);// alt programdan "false" değerini döndürme komutu
}
teşekkürler, rakam nedir?
 
okvseok :
teşekkürler, rakam nedir?

Bir ticaret enstrümanının önemi - ondalık noktasından sonra kaç tane sayıya sahip olduğu.
 
drknn :

Bir ticaret enstrümanının önemi - ondalık noktasından sonra kaç tane sayıya sahip olduğu.

yani, 4 basamak olduğunu biliyorsam, kod şu şekilde kısaltılabilir mi?:

int dg = 4;

................kod

if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {

ocp=NormalizeDouble(OrderClosePrice(), dg);// emir kapanış fiyatının normalleştirilmesi
otp=NormalizeDouble(OrderTakeProfit(), dg);// siparişin normalleştirilmesi TakeProfit fiyatı
if (ocp==otp) dönüş(Doğru);
}

dönüş(yanlış);

}

 
Mümkün olup olmadığını bilmiyorum - yazarın amacına göre (peki, ben öyle görüyorum) bu kod bölümü rakamları otomatik olarak belirlemek için tasarlanmıştır - yani, kod tam olarak ondalık basamaktan sonra kaç basamak belirleyebilir nokta fiyatları yuvarlamak gereklidir. Sadece bu bölüm aptalca yapılmış.
 
Söyleyin lütfen, işlem sürecine dahil olan tüm çiftler için toplam açık sipariş sayısını sayan bir gösterge var mı?
 
yosuf :
Söyleyin lütfen, işlem sürecine dahil olan tüm çiftler için toplam açık sipariş sayısını sayan bir gösterge var mı?
Hayır. Açık pozisyonların sayısını sayan basit bir danışman yapmak daha kolaydır.
 
CodeBase başkanına soru. Oraya 3 yayın gönderdim (artı 3 İngilizce). Bunlardan biri 18 Temmuz'da gönderildi ve yayınlanmadı. İlk başta kodları oraya gönderdiğimde 3-4 gün içinde çıkıyordu. Şimdi yenilerinin yayınlanıp yayınlanmayacağı belli değil. Örneğin, materyalin oldukça zayıf olup olmadığını ve patronun görüşüne göre onları CodeBase'e sokmaya değmeyeceğini bilmek istiyorum, görünmeyeceklerine dair bir tür mesaj alacak mıyım, o zaman, örneğin , uygulamadan kaldırılacaklar mı? Yayınlanmayacaklarını bilseydim, yayını daha farklı, daha kapsamlı hazırlardım. Yayın için ortalama bir bekleme süresi var mı?