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

 

Teşekkür ederim. Meta düzenleyiciden doğrudan foruma anında kod yazma maliyeti) Prensip olarak, "||" yerine geçmek yeterlidir. "&&" (muhtemelen başlangıçta eşitsizliği kontrol etmek ve ardından devam etmek istedi) ve her şey işe yarayacak, ancak test cihazında yine de çalışacak. Elbette varyantınız daha doğru olacaktır.

 

Eh, bunlar nüanslar. Hala kendimi anlamak için yeniden yazmaya çalışıyorum. Örneğin, sihir için bir seçeneğe hiç ihtiyacım yok (bu fonksiyonda). Figar0 işlevindeki seçimin geçmiş listesinden olduğunu da fark ettim. İşte anlaşılması gereken ana fikir. Bu arada, havuzdan emir almam gerekiyor, bu yüzden her şey çok daha basit oldu.

Fikirler ve yardım için teşekkürler arkadaşlar.

Not: Lütfen açıklayın

OrderType()> 1
Birkaç kez OrderType'ın int ile karşılaştırıldığını gördüm. Buradaki amaç ne? Bunun bir dize değişkeni olduğunu düşündüm.
 
Pyro :

Eh, bunlar nüanslar. Hala kendimi anlamak için yeniden yazmaya çalışıyorum. Örneğin, sihirle bir seçime hiç ihtiyacım yok (bu fonksiyonda). Figar0 işlevindeki seçimin geçmiş listesinden olduğunu da fark ettim. İşte anlaşılması gereken ana fikir. Bu arada, havuzdan emir almam gerekiyor, bu yüzden her şey çok daha basit çıktı.

Fikirler ve yardım için teşekkürler arkadaşlar.

Not: Lütfen açıklayın

Birkaç kez OrderType'ın int ile karşılaştırıldığını gördüm. Buradaki amaç ne? Bunun bir dize değişkeni olduğunu düşündüm.

Bu, sabitlerin ve değerlerinin karşılığıdır.

OP_BUY 0'a karşılık gelir

OP_SELL, 1'e karşılık gelir

____________________________________________________________________________________________________

OrderSend() işlevi için işlem türü. Aşağıdaki değerlerden herhangi biri olabilir:

Devamlı Anlam Tanım
OP_BUY 0 Satın almak
OP_SELL 1 Satış
OP_BUYLIMIT 2 Bekleyen sipariş SATIN AL LIMIT
OP_SELLLIMIT 3 Bekleyen sipariş SATIŞ LİMİTİ
OP_BUYSTOP 4 Bekleyen sipariş SATIN AL DUR
OP_SELLSTOP 5 Bekleyen sipariş SATIŞ DURDUR
 
Pyro :

Bu arada, havuzdan emir almam gerekiyor, bu yüzden her şey çok daha basit oldu.

Dizine göre bir sipariş seçerken, iki liste kullanılır - açık ve kapalı. Bu, hangi listede izleneceğini belirterek ayarlanır ( havuz parametresi).

Bu nedenle, açık olanlar listesinden seçim yapmanız gerekiyorsa, bu parametre atlanabilir (varsayılan olarak ayarlanır). Kapanan emirler listesinden seçim yapılması gerekiyorsa, ancak MODE_HISTORY havuzunu parametre olarak belirtmek gerekir.

Buna göre, eğer son açık olanı bulmak istiyorsanız, o zaman döngü terminalin açık emirleri üzerinde yapılır ve son kapalı olana ihtiyacınız varsa (yukarıdaki örneklerde olduğu gibi) sipariş açılış zamanını OrderOpenTime() kontrol etmeniz gerekir. ), daha sonra kapalı terminal siparişlerinde döngü gereklidir ve seçilen siparişin kapanış zamanını belirlemek için OrderCloseTime() öğesini kontrol etmeniz gerekir.

Ve referans olarak, biletle bir seçim yaparsanız, havuz parametresi genellikle yok sayılır ve sipariş her iki listede de aranır. Bulunduğunda, seçildiği listeyi belirlemek için kapanış saati kontrol edilmelidir. Kapanış zamanı sıfırdan büyükse, emir kapatılır ve kapatılan emirler listesinden seçilir. Açık bir emir için kapanış zamanı her zaman sıfıra eşittir. Yani sıfıra eşitse, açık emirler listesinden emir seçilmiştir.

Ayrıca, biletine göre bekleyen bir emir arıyorsanız, her iki listede de görünebilir. Bu, bir piyasaya dönüştürülürse gerçekleşir. Bu nedenle, seçilen siparişin türünü de kontrol etmeniz gerekecektir. Ve bekleyen emir kapalıysa ancak aynı bilete sahip piyasa kapalı değilse, bekleyen emir piyasaya dönüştürülmüştür.

 
Figar0 :

Teşekkür ederim. Meta düzenleyiciden doğrudan foruma anında kod yazma maliyeti) Prensip olarak, "||" yerine geçmek yeterlidir. "&&" (muhtemelen başlangıçta eşitsizliği kontrol etmek ve ardından devam etmek istedi) ve her şey işe yarayacak, ancak test cihazında yine de çalışacak. Elbette varyantınız daha doğru olacaktır.

Ben kendim bazen kodu buraya gönderirken aptalca hatalar yapıyorum ... Sonra, haşlanmış bir adam gibi, kodu müstehcen bir biçimde okunana kadar düzeltiyorum ... :)))
 
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 2

extern int period= 24 ;
double Buf_0[],Buf_1[];

//+------------------------------------------------------------------+
int init()
  {
//---- 
   SetIndexBuffer ( 0 ,Buf_0);
   SetIndexStyle( 0 , DRAW_LINE , STYLE_SOLID , 1 );
   SetIndexBuffer ( 1 ,Buf_1);
   SetIndexStyle( 1 , DRAW_LINE , STYLE_SOLID , 1 );
//----
   return ;
  }
//+------------------------------------------------------------------+
int start()
  {
   int   i,counted_bars,maxValueIdx,minValueIdx; 
//----

   counted_bars=IndicatorCounted();
   i= Bars -counted_bars- 1 ;
   
   while (i>= 0 )
   {
   maxValueIdx= ArrayMaximum (Close,(period- 1 ), 0 ); 
   minValueIdx= ArrayMinimum (Close,(period- 1 ), 0 );
   Buf_0[i]=Close[maxValueIdx];
   Buf_1[i]=Close[minValueIdx];
   i--;
   }
   
   
//----
   return ;
  }
//+------------------------------------------------------------------+
Merhaba. Belli bir dönem için MAX ve MIN kapanış fiyatlarını hesaplayan bir gösterge yazmak istedim. Her şeyi ders kitabına göre yapıyorum gibi görünüyor, ancak eski verileri hiç çizmiyor, mevcut MAX ve MIN ile iki yatay çizgi gösteriyor. Söyle bana neyi yanlış yapıyorum?
 
borisis :
Merhaba. Belli bir dönem için MAX ve MIN kapanış fiyatlarını hesaplayan bir gösterge yazmak istedim. Her şeyi ders kitabına göre yapıyorum gibi görünüyor, ancak eski verileri hiç çizmiyor, mevcut MAX ve MIN ile iki yatay çizgi gösteriyor. Söyle bana neyi yanlış yapıyorum?


maxValueIdx=ArrayMaximum(Kapat,(dönem-1), i );

minValueIdx= DiziMinimum (Kapat,(dönem-1), i );

Ve sonra her adımda her zaman aynı indeksleri bulursunuz.

 

Herkese merhaba! Bir değişkenin hangi türe ait olduğunu programlı olarak nasıl bulabilirim: int VEYA double?

ve ikincisi, " DoubleToStr işlevi için parametre 1 olarak geçersiz çift sayı" hatası ne anlama geliyor? fonksiyonda yanlış parametre #1??? Henüz google'da bulamadım

 
todem :

Herkese merhaba! Bir değişkenin hangi türe ait olduğunu programlı olarak nasıl bulabilirim: int VEYA double?

Neden merak ediyorsun? Buna ihtiyaç duyulacak bir durumu tarif edebilir misiniz?
 
Yeniden planlandı.

Valdemar 01.04.2011 16:31
Tüm programlama ustalarına selamlar! Beni rahatsız etmiyorsa doğru fikir verin: Diyelim ki, belirli bir ticaret saatinin sonunda, bu saatin maksimum ve minimum sınırlarından birkaç puan başlayarak stop emri vermeye karar verdim, Burada ne kullanmalıyım, programlama fonksiyonları yazayım!?