MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 221

 
ax00071 : buy2'yi kapatmaya çalışan bir giriş görünüyor, orderclose işlevi için bilinmeyen bilet. Kodu hafızadan ekliyorum çünkü işteyim.

Ey. Ben de işte olduğum için hafızamdan yazıyorum. Deneyin: ve bileti sipariş raporundakiyle karşılaştırın. Test cihazında 0, 1, 2, 3, .... gibi görünüyor.

 RefreshRates (); // Это обязательно ДО OrderSelect () и лучше в таком виде: while (! RefreshRates ()) ;
for ( int i= OrdersTotal ()-1 ; i>=0; i--)
  if (! OrderSelect (i, SELECT_BY_POS )) continue;
  Ticket= OrderTicket (); 
  Lot   = OrderLots ();

  // Сообщение о попытке следует выдавать ДО ее осуществления, т.к. попытка может что-то изменить
  Alert ( "Попытка закрыть Buy Ticket= " ,Ticket, "  Lot=",Lot);  // Кажется Alert в тестере бестолкова, попробуйте Print
  Ans= OrderClose (Ticket,Lot, OrderClosePrice() ... );
}

 
novikov433 :

Kendim bir danışman yapmayı nasıl anlayacağımı öğrenmek istiyorum, yoksa belki gelecekte piyasa değişecek ve örneğin algoritmayı biraz değiştirmek için tekrar fazla ödeme yapmam gerekecek mi? Aslında, kârsız siparişlerin başabaşa transfer edilmesinden ve sizin sadece trendi beklemeniz gerektiğinden TS boşalmayacaktır.

Bir tür baykuş yapıcısında ts yapmak gerçekten mümkün mü? sadece en azından bunu nasıl yapacağınıza dair en temel bilgiyi yapın ve belirli bir yerde durma veya belirli günlerde alım satım emri verme gibi bazı işlevleri zaten ekleyin, ne eklenecek.

beynin pişirmediği bir şey, yapıcıda bile 1,2,3 vb. yapmanız gerekir ve neden en önemli şey her şeyi bu sırayla oklarla bağlamaktır, kim sadece mql 4'ün eğitimini yapar ve İnternet savaşçılarının, bunun tam olarak neden olduğunu açıklayacak hiçbir şeyin olmadığı, yani kelimelerle, o zaman kendiniz yeni bir şey yapmayacaksınız, ancak kodlarını kopyalamak zorunda kalacaksınız. ... hangi düzenden sorumlu olduğunu biliyorlar ve rastgele kurcalamadılar .. ..peki, bırakın profesyoneller piramit yapsın, dinamik parti, okuryazar durma; benim görevim başka bir şeyde yatıyor - gerekli filtreleri indirmek ve bir trend oluşumunun özünü anlamak. Yardım için teşekkürler!

Kendiniz nasıl yapacağınızı öğrenmek için belgeye sahip olmak yeterlidir ve okunanı okuyup anlayabilmektir. İlk seferde anlamadıysanız, birkaç kez daha ve tercihen daha yavaş okuyun, böylece beynin okuduklarınızın anlamını tanıması için zamanı olur.

Ve sonra fantezi uçuşu.

Şu koşul altında bir emir açmak istiyorum... "Ticaret Fonksiyonları" dokümantasyon bölümünü açın, emir açma fonksiyonunu bulun ve sözdizimine göre şunu yazın...

Ah, evet...koşulu gözlemlemek gerekiyor... "İşleçler" bölümünü açıyorsunuz, " if-else koşullu deyimi " okuyorsunuz ve gerekli koşulu yazıyorsunuz.

Bütün bunlar ortaya çıktığında, dilde genel olarak ne olduğunu, ne elde edilebileceğini anlamak için belgeleri baştan sona okudunuz.

Торговые функции - Справочник MQL4
Торговые функции - Справочник MQL4
  • docs.mql4.com
Торговые функции - Справочник MQL4
 
ve yine ben :)
1 günde en fazla n sipariş açmanıza izin veren bir fonksiyon yazdı.
şimdi fonksiyon depozitoyu birleştiriyor - yani siparişler her tikte açılıyor.

Yine nereye sıçtım?)

intOrderMax = 3; // 1 gün içinde açılabilecek maksimum sipariş sayısı .
OpenOrders() geçersiz
{
for (int i = 1; i <= 5; i++)
{
if (DayOfWeek() == i)
{
int say_maks = 0;
if (count_max <= OrderMax)
{
for(int cn = OrdersTotal()-1; cn>=0; cn--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderType() == OP_BUY)
say_maks++;
}
}
}
}
}
 
Beyler, bir danışman yardımıyla diğer çiftlerde emir açmak mümkün müdür? Örneğin, Uzman Danışman yalnızca EURAUD çifti üzerinde durur ve açılırsa EURAUD ve GBPUSD çiftleri üzerinde bir anlaşma açılır. Olasılık varsa durum ne olmalıdır?
 
ivan-baaton :
ve yine ben :)
1 günde en fazla n sipariş açmanıza izin veren bir fonksiyon yazdı.
şimdi fonksiyon depozitoyu birleştiriyor - yani siparişler her tikte açılıyor.

Yine nereye sıçtım?)

intOrderMax = 3; // 1 gün içinde açılabilecek maksimumsipariş sayısı .
OpenOrders() geçersiz
{
for (int i = 1; i <= 5; i++)
{
if (DayOfWeek() == i)
{
int say_maks = 0;
if (count_max <= OrderMax)
{
for(int cn = OrdersTotal()-1; cn>=0; cn--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderType() == OP_BUY)
say_maks++;
}
}
}
}
}

Bana göre, yaklaşım hiç mantıklı değil. Neden haftanın gününü tanımlamalısınız? Koşulun "Bugün xxx'ten fazla sipariş açmayın" olması gerekiyorsa, bugünün hangi gün olduğunun ne önemi var?

Benim açımdan bugün açılan siparişleri yeniden hesaplayıp uygun koşulu ayarlamak daha mantıklı. sırasıyla durumda

                     if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ) && OrderType () == OP_BUY )
                     count_max++; 
siparişin açılış tarihinin yeterli tanımı yoktur.
 

Rustam Bikbulatov :
Ребята, можно ли с помощью одного советника открывать ордера на других парах? Например Советник только стоит на паре EURAUD и при условии открытии открывается сделка на парах EURAUD и GBPUSD. Какое должно быть условие если будет возможность?

Yapabilir.

Sadece test cihazında çalışmıyor.

 int    OrderSend (
   string    symbol,               // символ
   int       cmd,                 // торговая операция
   double    volume,               // количество лотов
   double    price,               // цена
   int       slippage,             // проскальзывание
   double    stoploss,             // stop loss
   double    takeprofit,           // take profit
   string    comment= NULL ,         // комментарий
   int       magic= 0 ,             // идентификатор
   datetime expiration= 0 ,         // срок истечения ордера
   color     arrow_color= clrNONE    // цвет
   );
 
Alexey Viktorov :
Yapabilir.

Sadece test cihazında çalışmıyor.


Ve onları nasıl listeleyebilirim? virgülle mi yoksa && ile mi ayrılmış?
 
Rustam Bikbulatov :

Ve onları nasıl listeleyebilirim? virgülle mi yoksa && ile mi ayrılmış?

Onların ne? karakterleri say? ya da ne?

Her OrderSend'in kendine ait bir karakteri vardır. Virgül ya da başka bir şey yok...

 
Alexey Viktorov :

Onların ne? karakterleri say? ya da ne?

Her OrderSend'in kendine ait bir karakteri vardır. Virgül ya da başka bir şey yok...


çiftleri numaralandırmak
 
LRA :

Ey. Ben de işte olduğum için hafızamdan yazıyorum. Deneyin: ve bileti sipariş raporundakiyle karşılaştırın. Test cihazında 0, 1, 2, 3, .... gibi görünüyor.

İlginiz için teşekkür ederim)) İşte bir dulavratotu. . . . . . Kapanışta, işlem türünü kontrol etmek için ek koşullar olmaksızın, işlemi Cuma günü saat 22:00'de kapatmak için bir şartım vardı. Ve anlaşmanın kendisi birkaç saat önce kapandı. Saat 22:00'ye ulaştığında, danışman zaten kapalı olan bir siparişi kapatmak için emirler göndermeye başladı. . . . .