için bazı işlevler oluşturmam gerekiyor: 1- Satın almak için son sipariş açık fiyatınıalma ve saklama işlevi. 2- Satış için son sipariş açık fiyatını alma ve saklama işlevi. 3- Alım veya satım ne olursa olsun son kapanış emrini alma ve saklama işlevi
int LastOpenTicketForBuy(){ datetime lastTime = 0 ; int lastTicket = - 1 ; // None open. int magi.number= 0 ;
for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--)
if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber () == magic.number // my magic number
&& OrderSymbol () == Symbol () // and my pair.
&& OrderType ()==OP_BUY )
{ lastTime = OrderOpenTime ();
lastTicket = OrderTicket (); }
return (lastTicket);}
int LastOpenTicketForSell()
{ datetime lastTime = 0 ; int lastTicket = - 1 ; // None open.int magi.number= 0 ;
for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--)
if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber () == magic.number // my magic number
&& OrderSymbol () == Symbol () // and my pair.
&& OrderType ()==OP_SELL )
{ lastTime = OrderOpenTime ();
lastTicket = OrderTicket (); }
return (lastTicket);}
int lastcloseorder()
{ datetime lastTime = 0 ; int lastTicket = - 1 ; // None open. int magi.number= 0 ;
for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--)
if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber () == magic.number // my magic number
&& OrderSymbol () == Symbol () // and my pair.
&& OrderCloseTime () > lastTime
&& OrderType ()==OP_BUY||OP_SELL )
{ lastTime = OrderCloseTime (); lastTicket = OrderTicket (); }
return (lastTicket);}
sonra if ((LastOpenTicketForBuy()+LastOpenTi cketForSell())/2)<MarketInfo("EURUSD",MODE_BID)Pozisyonu kapat koyacağım
Gerçek yardımın için. satın almak için son siparişi ve satış için son siparişi almam gerekirse, bunları aşağıdakileri yaparak karşılaştırın:
if (son siparişopenforbuy == OOTlatest )
{ bir şey yap }
başka
{ } ....... aşağıdaki kod çalışacaktır.
bu gerçekten işe yarıyor mu???
ilk döngü
for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--) if (
ikinciye girer
for (pos--; pos >= 0 ; pos--) if (
sıfıra kadar azalan pos. ikinci döngü biter --> ilk döngüye geri döner ve ilk döngü son seferden beri pos'un nerede kaldığını bilmez. şans, pos = sıfır.
Senin fikrine göre. . ne döner(lastTicket); yapmak ?
Seçili siparişin bilet numarasını döndürür.
Dedin . . .
" için bazı işlevler oluşturmam gerekiyor: 1- Satın almak için son sipariş açık fiyatınıalma ve saklama işlevi. 2- Satış için son sipariş açık fiyatını alma ve tutma işlevi.
3- Alım veya satım ne olursa olsun son kapanış emrini alma ve saklama işlevi "
Peki neden bilet numarasını iade ediyorsunuz? Kopyalayıp yapıştırdığınız kodu okuyun, anlayın, öğrenin. . .
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
Sadece biraz yardıma ihtiyacım var, o zaman her şey yoluna girecek.
sana çok teşekkürler.
çocuklar,
Bir göz atıp neyin yanlış olduğunu söyler misin?
için bazı işlevler oluşturmam gerekiyor:
1- Satın almak için son sipariş açık fiyatını alma ve saklama işlevi.
2- Satış için son sipariş açık fiyatını alma ve saklama işlevi.
3- Alım veya satım ne olursa olsun son kapanış emrini alma ve saklama işlevi
sonra if ((LastOpenTicketForBuy()+LastOpenTi cketForSell())/2)<MarketInfo("EURUSD",MODE_BID)Pozisyonu kapat koyacağım
yapmam gerektiğini mi söylüyorsun
1- int yerine double LastOpenForBuy() koyun
2-sipariş için çift sırala, sonra iade et (sipariş için satın al)
Bu sayede sadece satın almak için son siparişimi açabiliyorum.
yapmam gerektiğini mi söylüyorsun
Bu bir soru . . . dışında bir şey kastetmiyorum. . . cevabın nedir?
Yardım etmemi istiyorsan soruma cevap vermelisin. . . ve "Bilmiyorum" kabul edilebilir bir cevap değildir. Biraz düşün.
Senin fikrine göre. . ne döner(lastTicket); yapmak ?
Halihazırda seçili sipariş için bilet numarasını döndürür.
Teşekkürler WHRoeder,
Gerçek yardımın için. satın almak için son siparişi ve satış için son siparişi almam gerekirse, bunları aşağıdakileri yaparak karşılaştırın:
if (son siparişopenforbuy == OOTlatest )
{ bir şey yap }
başka
{ } ....... aşağıdaki kod çalışacaktır.
bu gerçekten işe yarıyor mu???
ilk döngü
ikinciye girer
sıfıra kadar azalan pos. ikinci döngü biter --> ilk döngüye geri döner ve ilk döngü son seferden beri pos'un nerede kaldığını bilmez. şans, pos = sıfır.
bu kod muhtemelen işe yarayabilir ... sadece 1 şeyi değiştirmeniz gerekiyor:
ifade için ikinci
gibi farklı bir yineleyiciye
ve benzer şekilde, YALNIZCA tüm ikinci döngü mantığında yeni yineleyiciye pos değiştirin (bu durumda, a).
Senin fikrine göre. . ne döner(lastTicket); yapmak ?
Seçili siparişin bilet numarasını döndürür.
Dedin . . .
" için bazı işlevler oluşturmam gerekiyor:1- Satın almak için son sipariş açık fiyatını alma ve saklama işlevi.
2- Satış için son sipariş açık fiyatını alma ve tutma işlevi.
3- Alım veya satım ne olursa olsun son kapanış emrini alma ve saklama işlevi "
Peki neden bilet numarasını iade ediyorsunuz? Kopyalayıp yapıştırdığınız kodu okuyun, anlayın, öğrenin. . .