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

 
forexnew :

Başlangıç bakiyesinin (başlangıç bakiyesi) StarLot'a (başlangıç partisi) oranını başlangıçta belirlenen risklere göre belirlediyseniz, tamamlama tutarı özkaynaktan belirlenmelidir:

if(AccountEquity()<StartBalance) Yükleme = (AccountBalance()+(StartBalance-AccountEquity()))*Yeni Parti/StarLots

Bu, AccountCredit() olmadan. Seni doğru anladıysam tabii.


Zaten bir formül var:

Gerekli (ilave) hacmi aşağıdaki formülü kullanarak hesaplayabilirsiniz : V(ek) = (ToplamInv / Özkaynak) * Lot

Neresi:
SumInv - Yeni doldurma miktarı - boyutunun bir şekilde belirli bir zamanda (önceden biliniyordu) programlı olarak hesaplanarak öğrenilmesi gerekiyor,
Öz sermaye - Aynı anda hesabın öz sermayesi - bu değer, ticaret hesabı hakkında bilgi edinme işlevinden elde edilir:

 double AccountEquity ( ) 
Возвращает сумму собственных средств для текущего счета.  


Lotlar - Daha önce edinilmiş (başlangıçta) varlıkların hacmi, diyelim ki 1 lot.
Bu, konumları ayarlamak için SumInv... değişkeninin değerini bilmeniz gerektiği anlamına gelir.

Sıfıra eşit olmaması koşuluyla, bu değişkenin program hesaplamasını çözmek için en iyi seçenek nedir?

 
Roman. :


Zaten bir formül var:

Gerekli (ilave) hacmi aşağıdaki formülü kullanarak hesaplayabilirsiniz : V(ek) = (ToplamInv / Özkaynak) * Lot

Neresi:
SumInv - Yeni doldurma miktarı - boyutunun bir şekilde belirli bir zamanda (önceden biliniyordu) programlı olarak hesaplanarak öğrenilmesi gerekiyor,
Öz sermaye - Aynı anda hesabın öz sermayesi - bu değer, ticaret hesabı hakkında bilgi edinme işlevinden elde edilir:


Lotlar - Daha önce edinilmiş (başlangıçta) varlıkların hacmi, diyelim ki 1 lot.
Bu, konumları ayarlamak için SumInv... değişkeninin değerini bilmeniz gerektiği anlamına gelir.

Sıfıra eşit olmaması koşuluyla, bu değişkenin program hesaplamasını çözmek için en iyi seçenek nedir?

İlk lotu kaç lotla artırmak istediğiniz bilinmiyorsa, hesaplarken neyle başlayacağımı anlamıyorum. Bu tamamen insan faktörüdür:

SumInv = "Bakiyemi x dolar artırmak istiyorum" + StartBalance- Equity

Yoksa dans etmeniz gereken en uygun başlangıç dengesini bilmiyor musunuz ? Durakların ve omuzun boyutundan hesaplanmalıdır.

Uzman Danışmanımda, tüm hesaplamalar durakların boyutuna dayanmaktadır, buradan itibaren optimal başlangıç dengesi dansları (ilk dengeye mutlaka eşit değildir) ve ardından başlangıç partisinin otomatik hesaplanması vardır.


 
forexnew :

İlk lotu kaç lotla artırmak istediğiniz bilinmiyorsa, hesaplama yaparken neyle başlayacağımı anlamıyorum. Bu tamamen insan faktörüdür:

SumInv = "Bakiyemi x dolar artırmak istiyorum" + StartBalance- Equity

Yoksa dans etmeniz gereken en uygun başlangıç dengesini bilmiyor musunuz ? Durakların ve omuzun boyutundan hesaplanmalıdır.

Uzman Danışmanımda, tüm hesaplamalar durakların boyutuna dayanmaktadır, buradan itibaren optimal başlangıç dengesi dansları (ilk dengeye mutlaka eşit değildir) ve ardından başlangıç partisinin otomatik hesaplanması vardır.


Her şey biliniyor. İlk lot, yukarıdaki formüle göre yapılan eklemelerle orantılı olarak artar. Bir kez daha, bağlantıdaki bağlantıyı okuyun - para yatırırken / çekerken pozisyonun hacmindeki ayarlamalar.
Konuyla ilgileniyorsanız - sadece şu soruyu cevaplamaya çalışın: Programlı olarak nasıl belirlenir (doğrudan Hesap bilgileri işlevleri aracılığıyla mümkün değilse, bir algoritma ve herhangi bir formül aracılığıyla) - ticaret hesabında yüklemeler var mıydı? gün içindeki herhangi bir (önceden bilinen) zamana (diyelim ki saat 00'da). Önceki (başlangıç) olana kadar tamamlama için daha önce verilen formülde gerekli olan ek hacmi hesaplamak için kalan değişkenler bilinmektedir.

Çocuklar, söyleyin...

 
Roman. :

Her şey biliniyor. İlk lot, yukarıdaki formüle göre yapılan eklemelerle orantılı olarak artar. Bir kez daha, bağlantıdaki bağlantıyı okuyun - para yatırırken / çekerken pozisyonun hacmindeki ayarlamalar.
Konuyla ilgileniyorsanız - sadece şu soruyu cevaplamaya çalışın: Programlı olarak nasıl belirlenir (bir algoritma ve herhangi bir formül aracılığıyla, doğrudan hesap bilgileri aracılığıyla mümkün değilse) - ticaret hesabında yükleme olup olmadığı gün içinde bazı (önceden bilinen) bir zamanda (diyelim ki saat 00'da). Önceki (başlangıç) olana kadar tamamlama için daha önce verilen formülde gerekli olan ek hacmi hesaplamak için kalan değişkenler bilinmektedir.

Çocuklar, söyleyin...

Şimdi net. Son gün para yükleme / çekme olup olmadığını programlı olarak hesaplamanız gerektiğini varsayalım. Gösterge ektedir. Yalnızca fatura döneminin başındaki bakiyeyi ve hesaplama gün sayısını girmeniz gerekir. Umarım şimdi seni doğru anlıyorum.

Dosyalar:
balans_9.mq4  6 kb
 

Merhaba!

Göstergemle geri döndüm. Kıdemli yoldaşların tavsiyesi üzerine, düz bir çizgi üzerindeki bir noktanın değerini hesaplayan ve gösterge dizisini bu değerlerle dolduran bir döngü oluşturmaya çalıştım.

Birer birer, her şeyin doğru olduğunu düşünüyor gibi görünüyor. Birlikte terminali kilitler:=(

//için (i=Vnf2;i>0;i--)

// {int k=Vnf2;

// ArrayResize (Buf_DN,Vnf2+1);

// Buf_DN[i]= EquationDirect(Vnf2, VMF2, Vnf1,VMF1,k);

// k--;

// }

 

Hata küçük, ancak yine de bu sürümde kilitleniyor

intk=Vnf2;

(i=Vnf2;i>0;i--) için

// {

// ArrayResize (Buf_DN,Vnf2+1);

// Buf_DN[i]= EquationDirect(Vnf2, VMF2, Vnf1,VMF1,k);

// k--;

// }


 
Вопрос:  как сделать так ,чтобы эксперт мог открыть только одну позицию?

int NumberOfOrders(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal(), ko=0, ot;

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      ot=OrderType();
      if (ot>1 && ot<6) {
        if ((OrderSymbol()==sy || sy=="") && (op<0 || ot==op)) {
          if (mn<0 || OrderMagicNumber()==mn) ko++;
        }
      }
    }
  }
  return(ko);

}

использую это примерно так:

if(NumberOfOrders(NULL)==0)
            {
            Print("Вошли в цикл");
            
             
                  Print("Покупаю");
                  NumderOrder=OrderSend(Symbol(),OP_BUY,lot,Ask,3,Ask-50*Point,Ask+50*Point,"1",0,0,Red);
                  Print(GetLastError());

                  }

В результате он все равно открывает несколько подряд не закрыв старую. Не могу понять в чем дело. Помогите плиз.

 
nuan:
if (ot>1      У ордеров  Buy ot=0, мож в этом дело?
 
nuan :
Igor Kim'in işlevlerini kullanıyorsunuz. Emirler ve pozisyonlar için tanımları vardır. Emirler bekleyen emirlerdir ve pozisyonlar piyasa emirleridir.
Açık piyasa pozisyonlarını değil, bekleyen emirlerin sayısını saymaya çalışıyorsunuz.
 
çok teşekkürler.