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

 
ALEX_SPB_RU :

Hala anlamadım!

Aramanın sıfır konumundan başlaması gerektiğini açıkça belirtsem bile, yay_Prefix_78 adlı nesne silinecek, çünkü fonksiyon 4 sayısını döndürür

Yani, önekle silmek için, ya ==0 belirtmeli ya da fonksiyonun önüne !

Alınma, sadece öğreniyorum ve bu yüzden her şeyi kendim halletmek istiyorum.

Yardımın için tekrar teşekkürler!

İyi şanlar!

Belki kendimi yeterince açık ifade edemedim:

if ( StringFind (ad, önek, 0) == 0) yalnızca dizenin başından itibaren arama yapmak içindir.

Kendim tarafından yazılan işlevler olmadıkça varsayılan parametreleri sevmiyorum - tam kontrol var ....

İyi şanlar.

 
abolk :

buna bir serseri diyebilirseniz, o zaman bir serseri. Özellikle yardıma ihtiyacı olan birine yardım ederim. ama kendi deneyimlerimden biliyorum ki, biri kendi görevini en azından biraz anlamayacak kadar tembelse, o zaman yardım etmek tam bir serseriliktir...
Neden böyle? Yetkin bir kişinin kod yazmasının, yeni bir ders kitabı açan, birkaç kez hata yapan ve daha sonra sadece istenen sonucu alan bir kişiden daha hızlı ve daha kolay olduğu gerçeğini tartışmak mümkün mü? Nasıl yazacağımı düşünmek istemediğimden bahsediyorsanız, o zaman mantıklı olarak, hemen bir görev yazıp yazmamı isterdim, ama hayır, kendim çözmek istiyorum ama değil. tüm dili anlayın, ancak özellikle benim görevim
 
sergeev :

Size özel fonksiyon isimleri yazdım.

eylemlerinizin algoritmasını bile gösterdi.

Yazdıklarını düşünemeyecek kadar tembel misin?

Garip bir şekilde, ama yazmadan önce düşündüm ve ders kitabında bu işlevleri bulmaya çalıştım. sadece OrderModify buldum, daha önce gördüğümü hatırlamama rağmen OrderOpenPrice'ı bulamadım. Yansımalara gelince, böyle bir görevin, yazdıklarınızı girmeniz gereken mantıksal işlevlerle (öyle görünüyorsa) ilgili olduğunu düşündüm. doğru düşünüyorum?
 
Danil93 :
Garip bir şekilde, ama yazmadan önce düşündüm ve ders kitabında bu işlevleri bulmaya çalıştım. sadece OrderModify buldum, daha önce gördüğümü hatırlamama rağmen OrderOpenPrice'ı bulamadım. Yansımalara gelince, böyle bir görevin, yazdıklarınızı girmeniz gereken mantıksal işlevlerle (öyle görünüyorsa) ilgili olduğunu düşündüm. doğru düşünüyorum?

Evet.

TAMAM. Sana istediğin bir işlevi versem, en azından kodun içine kendin ekleyebilir misin?

 
sergeev :

Evet.

TAMAM. Sana istediğin bir işlevi versem, en azından kodun içine kendin ekleyebilir misin?

yapabilirim
 

programlı olarak belirli bir tarihten başka bir tarihe kadar zaman aralığında yüksek nasıl bulunur.

öyle bir fonksiyon var anladığım kadarıyla bar ile yüksek aranıyor burada 0 bardan 4 bara kadar yüksek arama yapılıyor ama bar yerine bu barın tarih ve saatini ekleyebilirmiyim ?

örneğin programlı olarak çubuğun numarasını belirlemek için 2011.01.05 20:00 tarihini girip hangi çubuk olduğunu (10 veya 100 çubuk) belirledikten sonra yüksek arama fonksiyonuna mı ekliyorum?

 iHigh ( Symbol () , 0 , iHighest ( NULL , 0 , MODE_HIGH , 4 , 0 )
 
Eliza :

programlı olarak belirli bir tarihten başka bir tarihe kadar zaman aralığında yüksek nasıl bulunur.

öyle bir fonksiyon var anladığım kadarıyla bar ile yüksek aranıyor burada 0 bardan 4 bara kadar yüksek arama yapılıyor ama bar yerine bu barın tarih ve saatini ekleyebilirmiyim ?

örneğin programlı olarak çubuğun numarasını belirlemek için 2011.01.05 20:00 tarihini girip hangi çubuk olduğunu (10 veya 100 çubuk) belirledikten sonra yüksek arama fonksiyonuna mı ekliyorum?


 int iBarShift( string symbol, int timeframe, datetime time, bool exact=false) 
Поиск бара по времени. Функция возвращает смещение бара, которому принадлежит указанное время. 
Если для указанного времени бар отсутствует ( "дыра" в истории), то функция возвращает, в зависимости 
от параметра exact, - 1 или смещение ближайшего бара.

Параметры:
symbol   -   Символьное имя инструмента. NULL означает текущий символ. 
timeframe   -   Период. Может быть одним из периодов графика. 0 означает период текущего графика. 
time   -   Значение времени для поиска. 
exact   -   Возвращаемое значение если бар не найден. FALSE - iBarShift возвращает ближайший. 
            TRUE - iBarShift возвращает - 1 . 

Пример:
   datetime some_time= D'2004.03.21 12:00' ;
   int       shift=iBarShift( "EUROUSD" , PERIOD_M1 ,some_time);
   Print ( "shift of bar with open time " ,TimeToStr(some_time), " is " ,shift);

 
 
VladislavVG :

Teşekkürler.)
 
Danil93 :
yapabilirim
 //------------------------------------------------------------------ TralTP
void TralTP()
{
         int TS= 20 ; // расстояние убытка, на котором переносим тейкпрофит на цену открытия
        
         double FreezLvl=MarketInfo( Symbol (), MODE_FREEZELEVEL)* Point ; // расстояние заморозки ордера
         double StopLvl=MarketInfo( Symbol (), MODE_STOPLEVEL)* Point ; // расстояние стопуровня ордера
        
         int n= OrdersTotal (); // число текущих открытых ордеров
         for ( int i= 0 ; i<n; i++) // проходим по всем ордерам и двигаем стоп
        {
                 if (! OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) continue ; // берем ордер
                 if (OrderSymbol()!= Symbol ()) continue ; // если ордер не нашей валюты, то пропускаем
                
                 // берем его параметры
                 int dir=OrderType(); double cop= NormalizeDouble (OrderOpenPrice(), Digits );
                 double csl= NormalizeDouble (OrderStopLoss(), Digits ); 
                double ctp= NormalizeDouble (OrderTakeProfit(), Digits );
                
                 double apr; if (dir==OP_BUY) apr=Bid; else apr=Ask;
                 // проверили уровень заморозки
                 if ( MathAbs (ctp-apr)<=FreezLvl || MathAbs (csl-apr)<=FreezLvl) continue ; // если уровень заморозки
                
                 double tp=cop; // ставим ТП на цену открытия
                
                 // и проверяем условия выполнения отхода в убыток и правильность установки
                 if ((dir==OP_BUY && cop-apr>=TS* Point && (tp<ctp || ctp== 0 ) && tp>apr+StopLvl)
                 || (dir==OP_SELL && apr-cop>=TS* Point && (tp>ctp || ctp== 0 ) && tp<apr-StopLvl))
                {
                         if (!OrderModify(OrderTicket(), cop, csl, tp, 0 )) 
                                 Print ( GetLastError (), " -TralPos #" +OrderTicket()+ " tp=" +tp);
                }
        }
}
 


(OrderSymbol()!=Symbol()) devam ederse; // sipariş para birimimizde değilse, atla

Henüz bir şey anlamadım, foruma yeni girdim, 15 saniye arıyorum ama bir hata var, ilk bakışta == yazmanız gerekiyor.Bir yanlışlık varsa özür dilerim.

Tatillerin devamı ile!!