[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 341

 
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.
 
costy_ >> :

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?









 
Klinskih >> :

Arkadaşlar yeni öğreniyorum. Lütfen programın içeriğine bakma, sadece programdaki hatayı bulmama yardım et:

Orada:

                     if ( Bid > = ( OrderOpenPrice ( ) + Profit1 * Point )

gerekli:

                     if ( Bid > = OrderOpenPrice ( ) + Profit1 * Point )
 

Her bellek hücresi için bir kayıt kullanmadan tek boyutlu bir dizi nasıl ilan edilir (mümkün mü)

  ии[1]=ExtMapBuffer1[0]; ии[2]=ExtMapBuffer2[0];  ии[3]=ExtMapBuffer3[0]; 

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!!

 
TheXpert >> :

Orada:

gerekli:



Teşekkürler arkadaşım!

 
future >> :

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)

 int OrdersDayTotal ( string Symb )
 {
int cnt ,
OrdersDayTotal = 0 ,
Time0 = iTime ( NULL , PERIOD_D1 , 0 ) ;

for ( cnt = 0 ; cnt < OrdersTotal ( ) ; cnt + + )
   {
   OrderSelect ( cnt , SELECT_BY_POS , MODE_TRADES ) ;
   if ( OrderSymbol ( ) = = Symb & & OrderType ( ) < 2 )
       {
       if ( OrderOpenTime ( ) > Time0 ) OrdersDayTotal + + ;
       }
   }
for ( cnt = 0 ; cnt < OrdersHistoryTotal ( ) ; cnt + + )
   {
   OrderSelect ( cnt , SELECT_BY_POS , MODE_HISTORY ) ;
   if ( OrderSymbol ( ) = = Symb & & OrderType ( ) < 2 )
       {
       if ( OrderOpenTime ( ) > Time0 ) OrdersDayTotal + + ;
       }
   }
return ( OrdersDayTotal ) ;
 }

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)

 
Stepan241 >> :

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ürler
 
Stepan241 >> :

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.


bomba işlevi, birkaç sayfamı aldı çok teşekkürler
Neden: