[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 262

 
Valdemar :

Beyler, bu zamana dayalı işlevi EA koduma eklediğimde nerede hata yaptığımı söylemeyin:

Derleyici bana hatalar verdi.



Başka bir işlevin içinde bir işlev bildirdiğiniz yer:

 int init()
  {
  
bool isTradeTimeInt ( int hb= 05 , int mb= 50 , int he= 23 , int me= 00 ) 
    {
 
Roll :

Belirtilen işlevin 10. parametresine bakın. 0'a ayarlayın.

OrderSend (g_symbol_284, OP_BUY, Lot, g_ask_528 - gi_164 * g_point_400, Slippage, l_price_40, l_price_32, 0, g_magic_112, "En Yeni", MediumBlue);

bu satırı buldum ve orada neyi değiştirmeli?

 
Starting :

Kullanımı basit - Bir komut dosyası çalıştırıyorum. ..

Q.E.D. Yani, istenen sırayı belirleyecek bir koda ihtiyacınız var. Bunun gibi düzinelerce durum var, kodu basitleştirmek için her özel işlev için kaydedemezsiniz. Her özel durum için yazılmalıdır.
Uygun işlev örnekleri burada bulunabilir: KimIV'ten Faydalı İşlevler

Bitmiş olan uymuyorsa, ihtiyacınız olanı mevcut olanlara benzeterek oluşturabilirsiniz.
 
Bicus :

İşte fiyat ataleti için hesaplama. Onlar. birinci emrin zararı durdurma tetiklendi, ikincisi zarardan biraz daha az bir değerle kârda. Fiyat aynı yönde biraz daha fazla çalışırsa, evet, toplam artı elde edebilirsiniz.

Ancak, IMHO, böyle bir strateji umurumda değil.

Evet, tam olarak! Konu hakkında tahminde bulunmak: karlı bir yönde birkaç pip bile gidecek mi :)
 
granit77 :
Q.E.D. Yani, istenen sırayı belirleyecek bir koda ihtiyacınız var. Bunun gibi düzinelerce durum var, kodu basitleştirmek için her özel işlev için kaydedemezsiniz. Her özel durum için yazılmalıdır.
Uygun işlev örnekleri burada bulunabilir: KimIV'ten Faydalı İşlevler

Bitmiş olan uymuyorsa, ihtiyacınız olanı mevcut olanlara benzeterek oluşturabilirsiniz.


Bana öyle geliyor ki, sorunun özünü tam olarak iletemedim.

Açıklama 1. Bekleyen emir tetiklendikten sonra herhangi bir kod, bu emrin (tetiklenme anında piyasa emri haline gelen) açılış tarihine erişirken, bekleyen ayar tarihine eşit açılış tarihini alacaktır - bu şekilde OrderOpenTime() işlevi çalışır.

Açıklama 2. Hesaptaki siparişlerin durumunu sürekli izleyen bir Uzman Danışman olmadan, bekleyen tetikleyicinin tam zamanını hatırlamak mümkün olmayacaktır.


Olası çözüm 1. Bekleyen tarihten geçerli tarihe kadar bar-bar çalıştırın ve açık fiyatın bekleyen tetik seviyesiyle ilk kesişim zamanını kaydedin.

Aşağı yukarı kesin bir zaman olacak, ancak büyük bir dezavantajı var: yayılma. Çünkü spread tarihe yazılmaz (örneğin, Dukas'tan bir spread ile kene tarihinin versiyonunu almıyorum, örneğin, çünkü şimdi Dukas ve onun üzerinde işlem yapmıyorum, böyle bir spread ile böyle bir tarih, yapmanız gerekir yaz ve biriktir), belki sipariş çok daha erken çalıştı, fiyat neredeyse açılış seviyesine dokunduğunda, ancak onu geçmediğinde ve genişleyen yayılma nedeniyle, sipariş o zaman açıldı ve daha sonra değil, fiili gördüğümüzde bekleyen çizginin fiyatla aşılması.


En olası çözüm, bir Uzman Danışman yapmak, çizelgeye asmak ve hesaptaki siparişleri izlemek. Bunu yapmak istemiyorum, bir takım nedenlerden dolayı, Uzman Danışman'ın çalışmalarında molalarda olası sorunlarla ilgili dezavantajlar da var, ancak yapmak zorunda kalacağımı görüyorum, henüz başka düşünceler ortaya çıkmıyor.


Fonksiyonlar, kedidekiler. OrderOpenTime() işlevini çağırmak için bir bağlantı verdiniz. İşe yarayan geciktiriciler için bu, tetiklendikleri tarih değil, ayarlandıkları tarih olacaktır. Bu nedenle, mevcut fonksiyonlar uygun değildir. Ve onları da düzenlemenin bir yolu yok çünkü. neyse, sipariş açılış tarihi için OrderOpenTime()'a başvururlar.

 
Pyxlik2009 :

OrderSend(g_symbol_284, OP_BUY, Lot, g_ask_528 - gi_164 * g_point_400, Slippage, l_price_40, l_price_32, 0, g_magic_112, "En Yeni", MediumBlue);

bu satırı buldum ve orada ne değiştirmeli?

Yazdırma parametreleri aracılığıyla çıktı alın ve bkz.
 
Pyxlik2009 :

OrderSend(g_symbol_284, OP_BUY, Lot, g_ask_528 - gi_164 * g_point_400, Slippage, l_price_40, l_price_32, 0, g_magic_112, "En Yeni", MediumBlue);

bu satırı buldum ve orada ne değiştirmeli?

onuncu parametre "En Yeni" ye sahipsiniz ve bir sayıya ihtiyacınız var - siparişin sona erme süresi
 

işte tüm çizgi

if (!( AccountFreeMarginCheck (g_symbol_284, OP_BUY, Lots) <= 0.0 || GetLastError () == 134 /* NOT_ENOUGH_MONEY */ )) g_ticket_352 = OrderSend (g_symbol_284, OP_BUY, Lots, g_ask_528 - gi_164 * g_point_400, Slippage, l_price_40, l_price_32, 0 , g_magic_112, "Newest RX-1" , MediumBlue );
 
 
Pyxlik2009 :

işte tüm çizgi

Yeniden:

Belgeler:

int OrderSend ( dize sembolü, int cmd, çift hacim, çift fiyat, int kayma, çift stoploss, çift kâr alma, dize yorumu=NULL, int magic=0, datetime expiration=0 , color arrow_color=CLR_NONE)

"En Yeni" satırında onuncu parametreye sahipsiniz - bu bir sayı değil. Bu yüzden hata

 

PapaYozh
:


Başka bir işlevin içinde bir işlev bildirdiğiniz yer:

 int init()
  {
  
bool isTradeTimeInt ( int hb= 05 , int mb= 50 , int he= 23 , int me= 00 ) 
    {


Geri bildirimin için teşekkürler sevgili PapaYozh , ama bu işlevi int start() içine de ekledim, bu derleyici sonucunu hiç değiştirmez.

 int start()
{
int H,M,Ticket;
double Max,Min,
Max1,Min1,
TP,
Total;

bool isTradeTimeInt( int hb= 07 , int mb= 55 , int he= 23 , int me= 00 ) 
    {
   datetime db, de;           // Время начала и окончания работы
   int       hc;               // Часы текущего времени торгового сервера

  db= StrToTime ( TimeToStr ( TimeCurrent (), TIME_MINUTES)+ " " +hb+ ":" +mb);
  de= StrToTime ( TimeToStr ( TimeCurrent (), TIME_MINUTES)+ " " +he+ ":" +me);
  hc= TimeHour ( TimeCurrent ());
   if (db>=de) {
     if (hc>=he) de+= 24 * 60 * 60 ; else db-= 24 * 60 * 60 ;
  

   if ( TimeCurrent ()>=db && TimeCurrent ()<=de) return (True);
   else return (False);
}
 

H= Hour ();
M= Minute ();
Total= OrdersTotal ();
if (Total== 0 )
{
if (isTradeTimeInt==true)
{
   Max=High[ iHighest ( Symbol (), PERIOD_M5 ,MODE_HIGH, 12 , 0 )];
   Min=Low[ iLowest ( Symbol (), PERIOD_M5 ,MODE_LOW, 12 , 0 )];
ve sonuç olarak, derleyici bana bu hataları gösterdi ve anladığım kadarıyla, değişkenlerin yanlış tanımını mı ifade ediyor?

Herhangi bir rahatsızlık, anlaşılmazlık için kusura bakmayın, yine de böyle zor bir işte deneyim kazanmaya başladım ve sanırım bu forum ve burada cevap veren insanlar sayesinde gelişmeye devam ediyorum, becerilerimi geliştiriyorum, teşekkür ederim sen.