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

 

Profesyoneller geçmiyor, yardımınıza ihtiyacımız var. Koşul olarak bot daha erken bir satış pozisyonu açar, o zaman bu pozisyon aşağıda kapatılmalıdır, koda bakınız ve satış pozisyonunun kapatılması gereken yerde bir alış pozisyonu açılmalıdır, açık pozisyon sayısı 1 olmalıdır (OrdersTotal() ). Soru, emir yürütme kuyruğu gibi bir şeyin nasıl yapılacağıdır: böylece önce bir satış pozisyonu kapatılır ve daha sonra aynı yerde bir alış pozisyonu açılır ve açık pozisyonların sayısı 1'e eşit olur mu?

 OrderSend ( Symbol (),OP_BUY,Lots,Ask, 4 , 0 , 0 , "" , 0 , 0 , Green );
     for (cnt= 0 ;cnt<total;cnt++)
     {
       OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES);
         if (OrderType()==OP_SELL)   // long position is opened
           {
                 OrderClose(OrderTicket(),OrderLots(),Ask, 4 , Violet ); // close position
                }
    }
 
bool bayrakları
 
eddy :
harici bir değişkene değil, yalnızca arabelleğe ayarlandığından bahsediyoruz

peki, bu Indicator_colorN kullanın

 
eddy :
harici bir değişkene değil, yalnızca arabelleğe ayarlandığından bahsediyoruz
MQL aracılığıyla herhangi bir şekilde. Ama eğer O-O-O-O-ÇOK gerekliyse, tabii ki yapabilirsiniz)))
 
alsu :
MQL aracılığıyla herhangi bir şekilde. Ama eğer O-O-O-O-ÇOK gerekliyse, tabii ki yapabilirsiniz)))

Neye ihtiyacın olduğunu bile bilmiyorsun...

emin eddy'nin ihtiyaçları MQL tarafından çözülür

 
sergeev :

Neye ihtiyacın olduğunu bile bilmiyorsun...

emin eddy'nin ihtiyaçları MQL tarafından çözülür

hayır, anlıyorum... çizim rengini programlı olarak gösterge kodundaki gösterge tamponundan alması gerekiyor (doğru, eddy ?). Bilgimin yargılamama izin verdiği kadarıyla, bu MQL'de imkansız.
 
alsu :
hayır, anlıyorum... çizim rengini programlı olarak gösterge kodundaki gösterge tamponundan alması gerekiyor (doğru, eddy ?). Bilgimin yargılamama izin verdiği kadarıyla, bu MQL'de imkansız.
muhtemelen.
sadece gösterge_renkN parametresini kullanın. Aynı değişken denilebilir.
 
sergeev :
muhtemelen.
sadece gösterge_renkN parametresini kullanın. Aynı değişken denilebilir.

yooooo.

Diyelim ki bir çizgi çizen bir göstergemiz var. Diyelim ki bu gösterge ile bir daire çizmek istiyoruz. Ama inlikatör hattı yeşil ise yeşil, kırmızı ise kırmızı yapmak istiyoruz.

 

Beyler programcılar, lütfen bana tüm siparişleri nasıl düzgün bir şekilde kapatacağımı söyleyin. Aşağıda çözülmesi gereken sorunu ve ne yapmalarını tavsiye ettiklerini veriyorum. Genel olarak, emirleri kapatmak ve ticareti yasaklamak için bir bayrak koymak dışında her şey yolunda gider...

Eminim aranızda tecrübeli programcılar vardır. Lütfen koşulları danışmana yazmama yardım edin:
1) C+=sipariş başına kâr(1)+sipariş başına kâr(2)+...+sipariş başına kâr(n) - geçerli anda tüm açık siparişlerdeki kârın toplamı.
2) С-=siparişteki kayıp(1)+siparişteki kayıp(2)+...+siparişteki(n) kayıp - o anki tüm açık siparişlerdeki kayıpların toplamı.
3) X=(c+)/(c-) - cari zamanda kârın zarara oranı
4) Öz Sermaye Değeri (S) ile kâr zarar oranı (X) çarpımı belirli bir hedef değerden (K) büyükse, o zaman her şey yolunda demektir, daha fazla işlem yaparız. (S*X>K ise, tamam)
5) Kâr-Zarar oranı (X) ile çarpılan Öz Sermaye Değeri (S), önceden belirlenmiş belirli bir değerden (K) küçükse, tüm açık emirler mevcut kotasyonlarda kapatılır ve EA bir sonraki açılışa kadar kapatılır. eller tarafından. (S*X<K, tüm sıralamayı kapat ve kapat)

Boşalmaya karşı iyi bir koruma olacağını düşünüyorum.

Aşağı yukarı böyle. Kar ve zararı hesaplayan iki fonksiyon oluşturuyoruz:
double CalculateProfitTotal()
{
çift sonuç = 0;
for(int i = 0; i < OrdersTotal(); i++)
if( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
if(SiparişKar() > 0)
Sonuç = Sonuç + OrderProfit();
dönüş(sonuç);
}

double CalculateLossTotal()
{
çift sonuç = 0;
for(int i = 0; i < OrdersTotal(); i++)
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
if(SiparişKar() < 0)
Sonuç = Sonuç + MathAbs(OrderProfit());
dönüş(sonuç);
}

Ve start () işlevinde koşullarımızı belirtiyoruz.
Örneğin şöyle:
X = CalculateProfitTotal() / CalculateLossTotal();
if(AccountEquity() * X < K)
{
//Burada tüm siparişleri kapatıyoruz ve
// ticareti yasaklayan bayrağı ayarla
dönüş(0);
}

 
alsu :

Diyelim ki gösterge ile bir daire çizmek istiyoruz. Ama inlikator hattı yeşil ise yeşil yapmak istiyoruz.

Mavi bir nesne oluşturmak istiyorum)

Sergeyev, yani gösterge_renk1 bir renk değişkeni mi?

Neden: