Sevgili HABERLER! Burada tartışılan soruların bazıları çok özeldir ve gerçekten bazı ipuçlarını ve yardımı hak ediyor. Ancak bazıları, iyi, basitçe, açıkçası, bazı EXPERTO yazarlarının programlamaya başlarken ML ile ilgili ders kitabını bile okumamasından kaynaklanmaktadır. TALEP: Öğreticiyi indirin (5 mb) okuyun ve forumdan bir cevap beklemeniz gerekmeyecek - kafanızda olacak.
Algoritmayı anlarsam, belirlenen zamanda bir alım (satım) açarız, fiyat diğer yönde> 10 puan geçmişse, emri kapatır ve ters yönde dururuz.
Kapatmak için kendi genel işlevimi kullanıyorum.
//Penceredeki tüm piyasa emirlerini kapatma işlevi------------------------------------------ -------------------------------------------------- -- -------- geçersiz _CloseAllOrder() { for(int i=0; i<OrdersTotal(); i++) //Tüm para birimleri için tüm siparişler arasında dolaş { if (OrderSelect(i,SELECT_BY_POS)==true) //sipariş başarıyla seçilmişse { (OrderSymbol()!=Symbol()) devam ederse; // seçilen sipariş yanlış para birimi içinse, aramaya devam edin { switch(OrderType()) // türü (Bue_Sell) gerekli sırayla belirleyin ve kapatın { case 0:OrderClose(OrderTicket(),OrderLots(),Bid,2);break; durum 1:OrderClose(OrderTicket(),OrderLots(),Ask,2);break; } } } } dönüş; } Yani şimdi ters yönde açmadan önce _CloseAllOrder() yazmanız yeterlidir.
Algoritmayı anlarsam, belirlenen zamanda bir alım (satım) açarız, fiyat diğer yönde> 10 puan geçmişse, emri kapatır ve ters yönde dururuz.
Kapatmak için kendi genel işlevimi kullanıyorum.
//Penceredeki tüm piyasa emirlerini kapatma işlevi------------------------------------------ -------------------------------------------------- -- -------- geçersiz _CloseAllOrder() { for(int i=0; i<OrdersTotal(); i++) //Tüm para birimleri için tüm siparişler arasında dolaş { if (OrderSelect(i,SELECT_BY_POS)==true) //sipariş başarıyla seçilmişse { (OrderSymbol()!=Symbol()) devam ederse; //seçilen sipariş yanlış para birimi içinse, aramaya devam edin { switch(OrderType()) // türü (Bue_Sell) gerekli sırada belirle ve kapat { case 0:OrderClose(OrderTicket(),OrderLots(),Bid,2);break; durum 1:OrderClose(OrderTicket(),OrderLots(),Ask,2);break; } } } } dönüş; } Yani şimdi ters yönde açmadan önce _CloseAllOrder() yazmanız yeterlidir.
fonksiyon bombası birkaç sayfamı aldı çok teşekkürler
Algoritmayı anlarsam, belirlenen zamanda bir alım (satım) açarız, fiyat diğer yönde> 10 puan geçmişse, emri kapatır ve ters yönde dururuz.
Kapatmak için kendi genel işlevimi kullanıyorum.
//Penceredeki tüm piyasa emirlerini kapatma işlevi------------------------------------------ -------------------------------------------------- -- -------- geçersiz _CloseAllOrder() { for(int i=0; i<OrdersTotal(); i++) //Tüm para birimleri için tüm siparişler arasında dolaş { if (OrderSelect(i,SELECT_BY_POS)==true) //sipariş başarıyla seçilmişse { (OrderSymbol()!=Symbol()) devam ederse; //seçilen sipariş yanlış para birimi içinse, aramaya devam edin { switch(OrderType()) // türü (Bue_Sell) gerekli sırayla belirleyin ve kapatın { case 0:OrderClose(OrderTicket(),OrderLots(),Bid,2);break; durum 1:OrderClose(OrderTicket(),OrderLots(),Ask,2);break; } } } } dönüş; } Yani şimdi ters yönde açmadan önce _CloseAllOrder() yazmanız yeterlidir.
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
Kaydedilen çiftler, şablon başlatma sırasında bir kez göstergelere "yönlendirilir", ardından "tamamen bağımsız hale gelirler"/
Tüm değiştirilen parametreler ind. par-ry ind'yi değiştirdiyseniz, şablona kaydedilir. şablonu yeniden kaydedin.
Teşekkür ederim!
mazepa 08.12.2009 17:42
CEVAP: KOD!
Algoritmayı anlarsam, belirlenen zamanda bir alım (satım) açarız, fiyat diğer yönde> 10 puan geçmişse, emri kapatır ve ters yönde dururuz.
Kapatmak için kendi genel işlevimi kullanıyorum.
//Penceredeki tüm piyasa emirlerini kapatma işlevi------------------------------------------ -------------------------------------------------- -- --------
geçersiz _CloseAllOrder()
{
for(int i=0; i<OrdersTotal(); i++) //Tüm para birimleri için tüm siparişler arasında dolaş
{
if (OrderSelect(i,SELECT_BY_POS)==true) //sipariş başarıyla seçilmişse
{
(OrderSymbol()!=Symbol()) devam ederse; // seçilen sipariş yanlış para birimi içinse, aramaya devam edin
{
switch(OrderType()) // türü (Bue_Sell) gerekli sırayla belirleyin ve kapatın
{
case 0:OrderClose(OrderTicket(),OrderLots(),Bid,2);break;
durum 1:OrderClose(OrderTicket(),OrderLots(),Ask,2);break;
}
}
}
}
dönüş;
}
Yani şimdi ters yönde açmadan önce _CloseAllOrder() yazmanız yeterlidir.
Arkadaşlar yeni öğreniyorum. Lütfen programın içeriğine bakma, sadece programdaki hatayı bulmama yardım et:
int başlangıç()
{
anahtar(Mevcut Durum)
{
durum STATE_SHORT:
MyOrderTicket = OrderSend (Symbol(), OP_SELL, Lot, Bid, 1, 0, 0,NULL, 1, 0, Red);
OrderSelect(MyOrderTicket,SELECT_BY_TICKET);
if (OrderModify(OrderTicket(),OrderOpenPrice(),Bid+90*Puan,Teklif-Kar1*Puan,0,Yeşil)==true)
{CurrentState=STATE_1;
kırmak;
}
STATE_1 vakası:
OrderSelect(MyOrderTicket,SELECT_BY_TICKET);
if(Sor <= OrderTakeProfit())
{CurrentState=STATE_KISA;
kırmak;
}
if(Teklif >= (OrderOpenPrice()+Profit1*Puan)
{CurrentState=STATE_KISA;
kırmak;
}
}
//----
dönüş(0);
}
Hata: '\end_of_program' - dengesiz sol parantez . Hata nerede?
Arkadaşlar yeni öğreniyorum. Lütfen programın içeriğine bakma, sadece programdaki hatayı bulmama yardım et:
Orada:
gerekli:
Her bellek hücresi için bir kayıt kullanmadan tek boyutlu bir dizi nasıl ilan edilir (mümkün mü)
ve tek boyutlu bir dizi
ии[3]={ExtMapBuffer1[0],ExtMapBuffer2[0],ExtMapBuffer3[0]}veya sadece sayısal ve mantıksal sabitler için tek boyutlu dizi!!
Orada:
gerekli:
Teşekkürler arkadaşım!
Bir soru daha var. Eğer (OrdersTotal()==0) ise... açık sipariş sayısı sıfır ise... o zaman ne olacak... GÜN BAŞINA açılan sipariş sayısı sıfır ise.
OrdersDayTotal gibi bir şey yok mu?
hayır, ancak her zaman kendi işlevinizi yazabilirsiniz)
Belirli bir enstrüman için bugün açılan Al ve Sat emirleri dikkate alınır. Ertelenen yok.
if(OrdersDayTotal(Symbol())==0) {...}
bunun gibi bir şey)
mazepa 08.12.2009 17:42
CEVAP: KOD!
Algoritmayı anlarsam, belirlenen zamanda bir alım (satım) açarız, fiyat diğer yönde> 10 puan geçmişse, emri kapatır ve ters yönde dururuz.
Kapatmak için kendi genel işlevimi kullanıyorum.
//Penceredeki tüm piyasa emirlerini kapatma işlevi------------------------------------------ -------------------------------------------------- -- --------
geçersiz _CloseAllOrder()
{
for(int i=0; i<OrdersTotal(); i++) //Tüm para birimleri için tüm siparişler arasında dolaş
{
if (OrderSelect(i,SELECT_BY_POS)==true) //sipariş başarıyla seçilmişse
{
(OrderSymbol()!=Symbol()) devam ederse; //seçilen sipariş yanlış para birimi içinse, aramaya devam edin
{
switch(OrderType()) // türü (Bue_Sell) gerekli sırada belirle ve kapat
{
case 0:OrderClose(OrderTicket(),OrderLots(),Bid,2);break;
durum 1:OrderClose(OrderTicket(),OrderLots(),Ask,2);break;
}
}
}
}
dönüş;
}
Yani şimdi ters yönde açmadan önce _CloseAllOrder() yazmanız yeterlidir.
fonksiyon bombası birkaç sayfamı aldı çok teşekkürlermazepa 08.12.2009 17:42
CEVAP: KOD!
Algoritmayı anlarsam, belirlenen zamanda bir alım (satım) açarız, fiyat diğer yönde> 10 puan geçmişse, emri kapatır ve ters yönde dururuz.
Kapatmak için kendi genel işlevimi kullanıyorum.
//Penceredeki tüm piyasa emirlerini kapatma işlevi------------------------------------------ -------------------------------------------------- -- --------
geçersiz _CloseAllOrder()
{
for(int i=0; i<OrdersTotal(); i++) //Tüm para birimleri için tüm siparişler arasında dolaş
{
if (OrderSelect(i,SELECT_BY_POS)==true) //sipariş başarıyla seçilmişse
{
(OrderSymbol()!=Symbol()) devam ederse; //seçilen sipariş yanlış para birimi içinse, aramaya devam edin
{
switch(OrderType()) // türü (Bue_Sell) gerekli sırayla belirleyin ve kapatın
{
case 0:OrderClose(OrderTicket(),OrderLots(),Bid,2);break;
durum 1:OrderClose(OrderTicket(),OrderLots(),Ask,2);break;
}
}
}
}
dönüş;
}
Yani şimdi ters yönde açmadan önce _CloseAllOrder() yazmanız yeterlidir.
bomba işlevi, birkaç sayfamı aldı çok teşekkürler