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

 
semiromid :

yardım istiyorum.

Bu "Bir hata oluştu" yorumuna nasıl değişken ekleyebilirim?

OrderSend(Symbol(),OP_SELLSTOP,0.1,Ask-50*Point,3,Bid+150*Puan,Bid-150*Point, "Bir hata oluştu", 0);


dize Dize;

Çift x;

................

................


Stroka= StringConcatenate ("Bir hata oluştu ", DoubleToStr(x, 0) );

OrderSend(Symbol(),OP_SELLSTOP,0.1,Ask-50*Puan,3,Bid+150*Puan,Bid-150*Puan, Stroka, 0);

 
bercut0077 :

İyi günler, uzmanlar, göstergede, danışmanın aldığı değerle ilgileniyorum

Parametrelerin ve değişkenlerin durumunu belirtmek için kullanılan özel sabitler. Aşağıdaki değerler olabilir:

Devamlı Anlam Tanım
BOŞ 0 Bir dizenin boş durumunu gösterir
BOŞ -1 Parametrenin boş durumunu gösterir
BOŞ_VALUE 0x7FFFFFF Varsayılan değer, boş değer işaretçisi. Özel göstergelerde kullanılır
CLR_NONE 0xFFFFFFFF Renk yokluğunu gösterir
WHOLE_ARRAY 0 Dizi işlevleriyle kullanılır. Bir dizinin tüm elemanlarının işlenmesi gerektiğini belirtir


Onaltılık olarak 0x7FFFFFFFF , ondalık olarak 2147483647'ye eşittir.

Onlar. zaman içinde bir noktada, gösterge arabelleğinde boş bir değer belirir - EA'da gördüğünüz şey budur. Gösterge arabelleğinin "boş değerinin" değerini kendiniz ayarlayabilirsiniz:

void SetIndexEmptyValue ( int indeksi, çift değer)

Gösterge çizgisi için boş değeri ayarlar. DataWindow'da boş değerler çizilmez veya gösterilmez. Boş bir değer için varsayılan değer EMPTY_VALUE'dir.
Seçenekler:
dizin - Hattın seri numarası. 0 ile 7 arasında olmalıdır.
değer - Yeni "boş" değer.
 
peshihod :


Onlar. açılış anı önemli değil, bir iki dakika önce mi açıldı?

2. nokta net değil. Her şey bulanık.

Açılış zamanı OrderOpenTime() tarafından belirlenebilir.

Onlar. açılış anı önemli değil, bir iki dakika önce mi açıldı?


Мгновенное открытие

1.Моментальное(Сиюсекундное +0.5 - 2 секунды) определение вновь открывшегося торгового(не отложеных ордеров) ордера(Ордера открытого вручную и открытого спомощью советника).Система идентефецируюет ордер из друх вариантов (Sell или Byu) .

Если система определила ордер который рание не был открыт . то идет продолжение под номером 2.

2. Выполняеться какая то задача (Например,если Sell: Alert("Открытый ордер на продажу"+y);),(Например,если byu: Alert("Открыт ордер на покупку"+w);), всего 1-н раз,именно для этого ордера .

После того как еще открылся один ордер(толи системой, толи вручную ), система вновь действует с пункта 1 по пункт 2 .

 
peshihod :

dize Dize;

Çift x;

................

................


Stroka= StringConcatenate ("Bir hata oluştu ", DoubleToStr(x, 0) );

OrderSend(Symbol(),OP_SELLSTOP,0.1,Ask-50*Puan,3,Bid+150*Puan,Bid-150*Puan, Stroka, 0);


Havalı kombinasyon) Em..
 
artmedia70 :

Parametrelerin ve değişkenlerin durumunu belirtmek için kullanılan özel sabitler. Aşağıdaki değerler olabilir:

Evet bu anlaşılabilir bir durum ama indikatörün bu boş değerlerden nasıl kurtulacağı net değil, bu yüzden kod yayınlandı, gerçek bir yardıma ihtiyaç var yani indikatör her zaman 1 veya -1 vermelidir.
 
bercut0077 :
Evet bu anlaşılabilir bir durum ama indikatörün bu boş değerlerden nasıl kurtulacağı net değil, bu yüzden kod yayınlandı, gerçek bir yardıma ihtiyaç var yani indikatör her zaman 1 veya -1 vermelidir.
Gösterge satırına boş değer atan bir fonksiyon örneği verdim. Başka türlü yapabilirsiniz. Yalnızca +1 ve -1 değerlerine ihtiyaç duyulursa, boş bir değer göründüğünde, geçmiş durumu (+1 veya -1) kontrol edin ve boş bir değer yerine girin. O zaman arabellekte her zaman +1 veya -1 olacaktır.
Diyelim ki +1 değeri var. Boş bir değer belirdi. Bunun yerine, geçmiş değeri (+1) arabelleğe girmeye devam edersiniz, -1 göründüğü anda girin.
Şimdi arabellek -1 olacak. Boş bir değer göründüğünde, önceki değeri kontrol edin (şimdi -1'dir), girin.
Bu şekilde arabellekte her zaman +1 veya -1 olur
 
artmedia70 :

Teşekkür ederim. Başka bir sorun vardı...
 
semiromid :

1.Моментальное(Сиюсекундное +0.5 - 2 секунды) определение вновь открывшегося торгового(не отложеных ордеров) ордера(Ордера открытого вручную и открытого спомощью советника).Система идентефецируюет ордер из друх вариантов (Sell или Byu) .

Если система определила ордер который рание не был открыт . то идет продолжение под номером 2.

2. Выполняеться какая то задача (Например,если Sell: Alert("Открытый ордер на продажу"+y);),(Например,если byu: Alert("Открыт ордер на покупку"+w);), всего 1-н раз,именно для этого ордера .

После того как еще открылся один ордер(толи системой, толи вручную ), система вновь действует с пункта 1 по пункт 2 .


Verilen (bekleyen) bir sipariş ile açık bir siparişin farklı siparişler olduğunu anlıyorum. Ve bekleyen bir sipariş açılırsa, görev orijinal siparişe, açık siparişe indirgenir. Eğer doğru anladıysam, zor.

Görevler nelerdir? Yapması daha kolay olabilir mi?

 
Değerli uzmanlar, kodu değiştirmeme yardım edin,
Cur_Trend без пустой величины, тоесть если появляется пустота, то нужно заменить последним известным значением
 #property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 LightBlue
#property indicator_color2 Magenta

double CrossUp[];
double CrossDown[];
double Cur_Trend[];
int CurrentTrend = 0 ;
int starttime = 0 ;
extern int FasterEMA = 5 ;
extern int SlowerEMA = 8 ;

int init()
  {
   IndicatorBuffers( 3 ); 
   SetIndexStyle( 0 , DRAW_ARROW , EMPTY);
   SetIndexArrow( 0 , 233 );
   SetIndexBuffer ( 0 , CrossUp);
   SetIndexStyle( 1 , DRAW_ARROW , EMPTY);
   SetIndexArrow( 1 , 234 );
   SetIndexBuffer ( 1 , CrossDown);
   SetIndexBuffer ( 2 , Cur_Trend);
   starttime = TimeLocal (); 
   return ( 0 );
  }

int deinit()
  {
   return ( 0 );
  }

int start() { 
   int limit, i, counter, loop, ii;
   double fasterEMAnow, slowerEMAnow, fasterEMAprevious, slowerEMAprevious, fasterEMAafter, slowerEMAafter;
   double Range, AvgRange;
   int counted_bars=IndicatorCounted();
   if (counted_bars< 0 ) return (- 1 );
   if (counted_bars> 0 ) counted_bars--;
   limit= Bars -counted_bars;
   loop = 0 ;
   for (i = 0 ; i <= limit; i++) {
      counter=i;
      Range= 0 ;
      AvgRange= 0 ;
       for (counter=i ;counter<=i+ 9 ;counter++)
      {
         AvgRange=AvgRange+ MathAbs (High[counter]-Low[counter]);
      }
      Range=AvgRange/ 10 ;
      fasterEMAnow = iMA ( NULL , 0 , FasterEMA, 0 , MODE_EMA , PRICE_CLOSE , i);
      fasterEMAprevious = iMA ( NULL , 0 , FasterEMA, 0 , MODE_EMA , PRICE_CLOSE , i+ 1 );
      fasterEMAafter = iMA ( NULL , 0 , FasterEMA, 0 , MODE_EMA , PRICE_CLOSE , i- 1 );
      slowerEMAnow = iMA ( NULL , 0 , SlowerEMA, 0 , MODE_EMA , PRICE_OPEN , i);
      slowerEMAprevious = iMA ( NULL , 0 , SlowerEMA, 0 , MODE_EMA , PRICE_OPEN , i+ 1 );
      slowerEMAafter = iMA ( NULL , 0 , SlowerEMA, 0 , MODE_EMA , PRICE_OPEN , i- 1 ); 
       if ((fasterEMAnow > slowerEMAnow) && (fasterEMAprevious < slowerEMAprevious) && (fasterEMAafter > slowerEMAafter)) {
         CrossUp[i] = Low[i] - Range* 0.5 ;
         if ((loop == 0 ) && (CurrentTrend != 1 ))  {
            CurrentTrend = 1 ;
            Cur_Trend[ii]= CurrentTrend;
            }
         if (loop == 0 )  {
            loop = 1 ;
            }
      }
       else if ((fasterEMAnow < slowerEMAnow) && (fasterEMAprevious > slowerEMAprevious) && (fasterEMAafter < slowerEMAafter)) {
              CrossDown[i] = High[i] + Range* 0.5 ;
           if ((loop == 0 ) && (CurrentTrend != - 1 ))  {
              CurrentTrend = - 1 ;
              Cur_Trend[ii]= CurrentTrend;
           }
           if (loop == 0 )  {
              loop = 1 ;
          }
       }
   }
   return ( 0 );
}
 

Sevgili uzmanlar!

Aşağıdaki konuda yardımınız gerekmektedir. İki renkli bir çizgi çizen özel bir gösterge var, sonra bir renk, sonra başka bir renk. Danışmana, şu anda çizginin hangi renk olduğunu belirlemeyi bir şekilde öğretmek mümkün mü?

Dosyalar: