Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Hey mladen, bir soru daha:
Karları -20'den düşükse tüm açık siparişleri nasıl kontrol edebilirim ve sonra kapatabilirim?
Bunun gibi bir şey mi?
//int currentTicket;
for(int i0=SiparişlerToplam()-1; i0>=0; i0--) {
//currentTicket = OrderSelect(i0, SELECT_BY_POS, MODE_TRADES);
if(OrderProfit() <= -20) {
OrderClose(OrderTicket(),OrderLots(),0,0, CLR_NONE);
}
}kibirli makine
Evet, bunu yapmalı.
Sadece karı kontrol ettiğiniz satırı şu şekilde değiştirebilirsiniz:
if ((OrderProfit()+OrderSwap()+OrderCommission()) <= -20)
kontrol ettiğinizin "saf" bir kâr olduğundan emin olmak için
OrderClose'da bir Teklif belirlemeli miyim veya Sormalı mıyım? Yoksa çizgi doğru mu?
Hm, yanlış bir şey var. Geriye dönük test , eksi kârda olan emirleri kapatmaz. Test sonunda -230 kârlı açık emirler vardır.
int başlangıç()
{
for(int i0=SiparişlerToplam()-1; i0>=0; i0--) {
if((OrderProfit()+OrderSwap()+OrderCommission()) <= -20) {
OrderClose(OrderTicket(),OrderLots(),0,0, CLR_NONE );
}
}
}
Bu işe yaramaz.
int başlangıç()
{
for(int i0=SiparişlerToplam()-1; i0>=0; i0--) {
if((OrderProfit()+OrderSwap()+OrderCommission()) <= -20) {
OrderClose(OrderTicket(),OrderLots(),0,0, CLR_NONE);
}
}
}
Bu işe yaramaz.OrderSelect()'i unuttunuz (bununla herhangi bir şey yapmadan önce her zaman siparişi seçmeniz gerekir). Ayrıca ne tür bir sipariş kapatmaya çalıştığınızı kontrol eden kısmı eklemek iyi bir fikir olacaktır.
Bunun gibi bir şey:
if (OrderSelect(u0,SELECT_BY_POS,MODE_TRADES))
if((OrderProfit()+OrderSwap()+OrderCommission()) <= -20)
{
if (OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,0,CLR_NONE);
if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,0,CLR_NONE);
}
Biri bana TrendHistogram göstergesinde histogramı çubuklara dönüştürmede yardımcı olabilir mi? Ekli TrendFilter göstergesindekilerle aynı çubukları almak istiyorum
TrendHistogram'ın doğru çalışması için EMA_Adaptive göstergesine ihtiyacı var
Biri bana TrendHistogram göstergesinde histogramı çubuklara dönüştürmede yardımcı olabilir mi? Ekli TrendFilter göstergesindekilerle aynı çubukları almak istiyorum TrendHistogram'ın doğru çalışması için EMA_Adaptive göstergesine ihtiyacı var
çılgın
Hadi bakalım
DrawAsBars'ı true olarak ayarlayın, tanımladığınız şekilde çizecektir. Bu parametreyi false olarak bırakırsanız, orijinal olarak çalışacaktır.
Merhaba,
Herhangi biri bu kodu düzenlememe yardımcı olabilir mi ?
//+------------------------------------------- -------------------+
//| Hans123Trader v1 |
//+------------------------------------------- -------------------+
#Dahil etmek
# mülkiyet telif hakkı "hans123"
#özellik bağlantısı ""
// fukinagashi tarafından programlandı
extern int BeginSession1=6; (backtest sırasında tüm oturumlar için 0'ı düzenleyip ayarladım, böylece nihai sonuçlar aldım)
harici int EndSession1=10;
harici int BeginSession2=10;
harici int EndSession2=14;
harici çift TrailingStop = 0;
harici çift TakeProfit = 452;
harici çift InitialStopLoss=40;
çift Lot = 0.1;
tarihsaat bar zamanı = 0;
çift Kayma=3;
//+------------------------------------------- -------------------+
//| |
//+------------------------------------------- -------------------+
int başlangıç()
{
int cnt, bilet, hata, i, j, cmd;
int MagicNumber;
double ts, tp, En Düşük Fiyat, En Yüksek Fiyat, Fiyat;
bool Sıra[5];
dizi kurulumu;
tarihsaat Geçerlilik=0;
if(IsTesting() && Çubuklar<100) return(0);
MagicNumber = 50000 + func_Symbol2Val(Symbol())*100;
setup="H123_" + Sembol();
if (bartime == Zaman[0]) {
dönüş(0);
} başka {
bar zamanı = Zaman[0];
}
///////////////////////////////////////////// ///////////////////////////////////////////// ////////////////
///////////////// AÇIK SİPARİŞLERDE DEĞİŞİKLİKLER ////////////////////////// //////////////////////////////////
///////////////////////////////////////////// ///////////////////////////////////////////// ////////////////
for(cnt=OrdersTotal();cnt>=0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY && (OrderMagicNumber()==MagicNumber+1 || OrderMagicNumber()==MagicNumber+3)) {
if(TimeDay(OrderOpenTime())!=TimeDay(Time[0])) {
Yazdır(".");
OrderClose(OrderTicket(), Lot, Bid, 3, Red);
if (err>1) { Print("Satın alma emri [" + kurulum + "] kapatılırken hata oluştu: (" + hata + ") " + ErrorDescription(err)); }
} else if (OrderStopLoss()==0) {
if (TakeProfit>0) { tp=OrderOpenPrice()+TakeProfit*Puan;
} başka { tp=0; }
if (InitialStopLoss>0) { ts=OrderOpenPrice()-InitialStopLoss*Point;
} başka { ts=0; }
OrderModify(OrderTicket(),OrderOpenPrice(),ts,tp,0,Beyaz);
if (err>1) { Print("Satın alma emrini değiştirirken hata [" + kurulum + "]: (" + err + ") " + ErrorDescription(err)); }
} else if (TrailingStop>0) {ts = Teklif Noktası*Sondaki Durdurma;
if (OrderStopLoss()0) OrderModify(OrderTicket(),OrderOpenPrice(),ts,OrderTakeProfit(),0,Beyaz);
}
} else if(OrderType()==OP_SELL && (OrderMagicNumber()==MagicNumber+2 || OrderMagicNumber()==MagicNumber+4)) {
if(TimeDay(OrderOpenTime())!=TimeDay(Time[0])) {
Yazdır(".");
OrderClose(OrderTicket(), Çok, Sor, 3, Kırmızı);
if (err>1) { Print("Satış emri [" + kurulum + "] kapatılırken hata oluştu: (" + err + ") " + ErrorDescription(err)); }
} else if (OrderStopLoss()==0) {
if (TakeProfit>0) { tp=OrderOpenPrice()-TakeProfit*Puan;
} başka { tp=0; }
if (InitialStopLoss>0) { ts=OrderOpenPrice()+InitialStopLoss*Point;
} başka { ts=0; }
OrderModify(OrderTicket(),OrderOpenPrice(),ts,tp,0,Beyaz);
if (err>1) { Print("Satış emrini değiştirirken hata [" + kurulum + "]: (" + err + ") " + ErrorDescription(err)); }
} else if (TrailingStop>0) {ts = Sor+Point*TrailingStop;
if (OrderStopLoss()>ts && OrderProfit()>0) OrderModify(OrderTicket(),OrderOpenPrice(),ts,OrderTakeProfit(),0,Beyaz);
}
}
}
///////////////////////////////////////////// ///////////////////////////////////////////// ////////////////
///////////////// SİPARİŞ AYARLAMA //////////////////////////// /////////////////////////////////
///////////////////////////////////////////// ///////////////////////////////////////////// ////////////////
if(AccountFreeMargin()<(1000*Lots)) return(0);
Validity=StrToTime(TimeYear(Time[0]) + "." + TimeMonth(Time[0]) + "." + TimeDay(Time[0]) + " 23:59");
if (TimeHour(Time[0])==EndSession1 && TimeMinute(Time[0])==0) {
En DüşükFiyat=Düşük[En Düşük(BOŞ, PERIOD_M5, MODE_LOW, 80, 0)];
En YüksekFiyat=Yüksek;
//// Alış/Satış'a çok yakın bir AL/SAT/DURDUR Fiyatından kaçınmak için aşağıdakiler gereklidir,
//// bu durumda 130 geçersiz durak alırız.
//// Uygun OP_BUY ve OP_SELL olarak değiştirmeyi denedim, ancak sonuçlar tatmin edici değil
//if (En YüksekFiyat+5*Puan<Sor+Spread*Puan) {
// cmd=OP_BUY;
// Fiyat=Sor;
//} başka {
cmd=OP_BUYSTOP;
Fiyat=En YüksekFiyat+5*Puan;
//}
bilet=OrderSendExtended(Symbol(),cmd,Lots,Price,Slippage,0,0,setup,MagicNumber+1,Validity,Green);
hata = GetLastError();
if (err>1) { Print("Satış emrini değiştirirken hata [" + kurulum + "]: (" + err + ") " + ErrorDescription(err)); }
//if (En DüşükFiyat-5*Puan>Teklif Yayılımı*Puan) {
// cmd=OP_SEL;
// Fiyat=Teklif;
//} başka {
cmd=OP_SELLSTOP;
Fiyat=En DüşükFiyat-5*Puan;
//}
bilet=OrderSendExtended(Symbol(),OP_SELLSTOP,Lots,Fiyat,Slippage,0,0,setup,MagicNumber+2,Geçerlilik,Yeşil);
hata = GetLastError();
if (err>1) { Print("Satış emrini değiştirirken hata [" + kurulum + "]: (" + err + ") " + ErrorDescription(err)); }
}
if (TimeHour(Time[0])==EndSession2 && TimeMinute(Time[0])==0) {
En DüşükFiyat=Düşük[En Düşük(BOŞ, PERIOD_M5, MODE_LOW, 80, 0)];
En YüksekFiyat=Yüksek;
//if (En YüksekFiyat+5*Puan<Sor+Spread*Puan) {
// cmd=OP_BUY;
// Fiyat=Sor;
//} başka {
cmd=OP_BUYSTOP;
Fiyat=En YüksekFiyat+5*Puan;
//}
bilet=OrderSendExtended(Symbol(),cmd,Lots,Price,Slippage,0,0,setup,MagicNumber+3,Geçerlilik,Yeşil);
hata = GetLastError();
if (err>1) { Print("Satış emrini değiştirirken hata [" + kurulum + "]: (" + err + ") " + ErrorDescription(err)); }
//if (En DüşükFiyat-5*Puan>Teklif Yayılımı*Puan) {
// cmd=OP_SEL;
// Fiyat=Teklif;
//} başka {
cmd=OP_SELLSTOP;
Fiyat=En DüşükFiyat-5*Puan;
//}
bilet=OrderSendExtended(Symbol(),cmd,Lots,Price,Slippage,0,0,setup,MagicNumber+4,Validity,Green);
hata = GetLastError();
if (err>1) { Print("Satış emrini değiştirirken hata [" + kurulum + "]: (" + err + ") " + ErrorDescription(err)); }
}
}
///////////////////////////////////////////// ///////////////////////////////////////////// ////////////////
///////////////// ÇEŞİTLİ ALT YÖNTEMLER //////////////////////////// /////////////////////////////////////////
///////////////////////////////////////////// ///////////////////////////////////////////// ////////////////
int func_Symbol2Val(dize sembolü) {
if(symbol=="AUDUSD") { return(01);
} else if(symbol=="CHFJPY") { return(10);
} else if(symbol=="EURAUD") { dönüş(10);
} else if(symbol=="EURCAD") { dönüş(11);
} else if(symbol=="EURCHF") { dönüş(12);
} else if(symbol=="EURGBP") { return(13);
} else if(symbol=="EURJPY") { return(14);
} else if(symbol=="EURUSDm") { dönüş(15);
} else if(symbol=="GBPCHF") { return(20);
} else if(symbol=="GBPJPY") { return(21);
} else if(symbol=="GBPUSD") { return(22);
} else if(symbol=="USDCAD") { return(40);
} else if(symbol=="USDCHF") { return(41);
} else if(symbol=="USDJPY") { return(42);
} else if(symbol=="ALTIN") { return(90);
} else { Comment("beklenmeyen Sembol"); dönüş(0);
}
}
int OrderSendExtended(dize sembolü, int cmd, çift hacim, çift fiyat, int kayma, çift stoploss, çift kâr alma, dize yorumu, int magic, datetime son kullanma=0, color arrow_color=CLR_NONE) {
tarihsaat OldCurTime;
int zaman aşımı=30;
int bileti;
OldCurTime=CurTime();
while (GlobalVariableCheck("InTrade") && !IsTradeAllowed()) {
if(OldCurTime+timeout<=CurTime()) {
Print("OrderSendExtended()'de Hata: Zamanaşımı ile karşılaşıldı");
dönüş(0);
}
Uyku(1000);
}
GlobalVariableSet("InTrade", CurTime()); // kilit göstergesini ayarla
bilet = OrderSend(sembol, cmd, hacim, fiyat, kayma, stoploss, kâr alma, yorum, büyü, sona erme, ok_renk);
GlobalVariableDel("InTrade"); // kilit göstergesini temizle
bilet iadesi);
}
Merhaba,
Herhangi biri bu kodu düzenlememe yardımcı olabilir mi? Geriye dönük testler iyidir ancak EA Demo / Gerçek Hesap üzerinde çalışmıyor.
//+------------------------------------------- -------------------+
//| Hans123Trader v1 |
//+------------------------------------------- -------------------+
#Dahil etmek
# mülkiyet telif hakkı "hans123"
#özellik bağlantısı ""
// fukinagashi tarafından programlandı
extern int BeginSession1=6; (backtest sırasında tüm oturumlar için 0'ı düzenleyip ayarladım, böylece nihai sonuçlar aldım)
harici int EndSession1=10;
harici int BeginSession2=10;
harici int EndSession2=14;
harici çift TrailingStop = 0;
harici çift TakeProfit = 452;
harici çift InitialStopLoss=40;
çift Lot = 0.1;
tarihsaat bar zamanı = 0;
çift Kayma=3;
//+------------------------------------------- -------------------+
//| |
//+------------------------------------------- -------------------+
int başlangıç()
{
int cnt, bilet, hata, i, j, cmd;
int MagicNumber;
double ts, tp, En Düşük Fiyat, En Yüksek Fiyat, Fiyat;
bool Sıra[5];
dizi kurulumu;
tarihsaat Geçerlilik=0;
if(IsTesting() && Çubuklar<100) return(0);
MagicNumber = 50000 + func_Symbol2Val(Symbol())*100;
setup="H123_" + Sembol();
if (bartime == Zaman[0]) {
dönüş(0);
} başka {
bar zamanı = Zaman[0];
}
///////////////////////////////////////////// ///////////////////////////////////////////// ////////////////
///////////////// AÇIK SİPARİŞLERDE DEĞİŞİKLİKLER ////////////////////////// //////////////////////////////////
///////////////////////////////////////////// ///////////////////////////////////////////// ////////////////
for(cnt=OrdersTotal();cnt>=0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY && (OrderMagicNumber()==MagicNumber+1 || OrderMagicNumber()==MagicNumber+3)) {
if(TimeDay(OrderOpenTime())!=TimeDay(Time[0])) {
Yazdır(".");
OrderClose(OrderTicket(), Lot, Bid, 3, Red);
if (err>1) { Print("Satın alma emri [" + kurulum + "] kapatılırken hata oluştu: (" + hata + ") " + ErrorDescription(err)); }
} else if (OrderStopLoss()==0) {
if (TakeProfit>0) { tp=OrderOpenPrice()+TakeProfit*Puan;
} başka { tp=0; }
if (InitialStopLoss>0) { ts=OrderOpenPrice()-InitialStopLoss*Point;
} başka { ts=0; }
OrderModify(OrderTicket(),OrderOpenPrice(),ts,tp,0,Beyaz);
if (err>1) { Print("Satın alma emrini değiştirirken hata [" + kurulum + "]: (" + err + ") " + ErrorDescription(err)); }
} else if (TrailingStop>0) {ts = Teklif Noktası*Sondaki Durdurma;
if (OrderStopLoss()0) OrderModify(OrderTicket(),OrderOpenPrice(),ts,OrderTakeProfit(),0,Beyaz);
}
} else if(OrderType()==OP_SELL && (OrderMagicNumber()==MagicNumber+2 || OrderMagicNumber()==MagicNumber+4)) {
if(TimeDay(OrderOpenTime())!=TimeDay(Time[0])) {
Yazdır(".");
OrderClose(OrderTicket(), Çok, Sor, 3, Kırmızı);
if (err>1) { Print("Satış emri [" + kurulum + "] kapatılırken hata oluştu: (" + err + ") " + ErrorDescription(err)); }
} else if (OrderStopLoss()==0) {
if (TakeProfit>0) { tp=OrderOpenPrice()-TakeProfit*Puan;
} başka { tp=0; }
if (InitialStopLoss>0) { ts=OrderOpenPrice()+InitialStopLoss*Point;
} başka { ts=0; }
OrderModify(OrderTicket(),OrderOpenPrice(),ts,tp,0,Beyaz);
if (err>1) { Print("Satış emrini değiştirirken hata [" + kurulum + "]: (" + err + ") " + ErrorDescription(err)); }
} else if (TrailingStop>0) {ts = Sor+Point*TrailingStop;
if (OrderStopLoss()>ts && OrderProfit()>0) OrderModify(OrderTicket(),OrderOpenPrice(),ts,OrderTakeProfit(),0,Beyaz);
}
}
}
///////////////////////////////////////////// ///////////////////////////////////////////// ////////////////
///////////////// SİPARİŞ AYARLAMA //////////////////////////// /////////////////////////////////
///////////////////////////////////////////// ///////////////////////////////////////////// ////////////////
if(AccountFreeMargin()<(1000*Lots)) return(0);
Validity=StrToTime(TimeYear(Time[0]) + "." + TimeMonth(Time[0]) + "." + TimeDay(Time[0]) + " 23:59");
if (TimeHour(Time[0])==EndSession1 && TimeMinute(Time[0])==0) {
En DüşükFiyat=Düşük[En Düşük(BOŞ, PERIOD_M5, MODE_LOW, 80, 0)];
En YüksekFiyat=Yüksek;
//// Alış/Satış'a çok yakın bir AL/SAT/DURDUR Fiyatından kaçınmak için aşağıdakiler gereklidir,
//// bu durumda 130 geçersiz durak alırız.
//// Uygun OP_BUY ve OP_SELL olarak değiştirmeyi denedim, ancak sonuçlar tatmin edici değil
//if (En YüksekFiyat+5*Puan<Sor+Spread*Puan) {
// cmd=OP_BUY;
// Fiyat=Sor;
//} başka {
cmd=OP_BUYSTOP;
Fiyat=En YüksekFiyat+5*Puan;
//}
bilet=OrderSendExtended(Symbol(),cmd,Lots,Price,Slippage,0,0,setup,MagicNumber+1,Validity,Green);
hata = GetLastError();
if (err>1) { Print("Satış emrini değiştirirken hata [" + kurulum + "]: (" + err + ") " + ErrorDescription(err)); }
//if (En DüşükFiyat-5*Puan>Teklif Yayılımı*Puan) {
// cmd=OP_SEL;
// Fiyat=Teklif;
//} başka {
cmd=OP_SELLSTOP;
Fiyat=En DüşükFiyat-5*Puan;
//}
bilet=OrderSendExtended(Symbol(),OP_SELLSTOP,Lots,Fiyat,Slippage,0,0,setup,MagicNumber+2,Geçerlilik,Yeşil);
hata = GetLastError();
if (err>1) { Print("Satış emrini değiştirirken hata [" + kurulum + "]: (" + err + ") " + ErrorDescription(err)); }
}
if (TimeHour(Time[0])==EndSession2 && TimeMinute(Time[0])==0) {
En DüşükFiyat=Düşük[En Düşük(BOŞ, PERIOD_M5, MODE_LOW, 80, 0)];
En YüksekFiyat=Yüksek;
//if (En YüksekFiyat+5*Puan<Sor+Spread*Puan) {
// cmd=OP_BUY;
// Fiyat=Sor;
//} başka {
cmd=OP_BUYSTOP;
Fiyat=En YüksekFiyat+5*Puan;
//}
bilet=OrderSendExtended(Symbol(),cmd,Lots,Price,Slippage,0,0,setup,MagicNumber+3,Geçerlilik,Yeşil);
hata = GetLastError();
if (err>1) { Print("Satış emrini değiştirirken hata [" + kurulum + "]: (" + err + ") " + ErrorDescription(err)); }
//if (En DüşükFiyat-5*Puan>Teklif Yayılımı*Puan) {
// cmd=OP_SEL;
// Fiyat=Teklif;
//} başka {
cmd=OP_SELLSTOP;
Fiyat=En DüşükFiyat-5*Puan;
//}
bilet=OrderSendExtended(Symbol(),cmd,Lots,Price,Slippage,0,0,setup,MagicNumber+4,Validity,Green);
hata = GetLastError();
if (err>1) { Print("Satış emrini değiştirirken hata [" + kurulum + "]: (" + err + ") " + ErrorDescription(err)); }
}
}
///////////////////////////////////////////// ///////////////////////////////////////////// ////////////////
///////////////// ÇEŞİTLİ ALT YÖNTEMLER //////////////////////////// /////////////////////////////////////////
///////////////////////////////////////////// ///////////////////////////////////////////// ////////////////
int func_Symbol2Val(dize sembolü) {
if(symbol=="AUDUSD") { return(01);
} else if(symbol=="CHFJPY") { return(10);
} else if(symbol=="EURAUD") { dönüş(10);
} else if(symbol=="EURCAD") { dönüş(11);
} else if(symbol=="EURCHF") { dönüş(12);
} else if(symbol=="EURGBP") { return(13);
} else if(symbol=="EURJPY") { return(14);
} else if(symbol=="EURUSDm") { dönüş(15);
} else if(symbol=="GBPCHF") { return(20);
} else if(symbol=="GBPJPY") { return(21);
} else if(symbol=="GBPUSD") { return(22);
} else if(symbol=="USDCAD") { return(40);
} else if(symbol=="USDCHF") { return(41);
} else if(symbol=="USDJPY") { return(42);
} else if(symbol=="ALTIN") { return(90);
} else { Comment("beklenmeyen Sembol"); dönüş(0);
}
}
int OrderSendExtended(dize sembolü, int cmd, çift hacim, çift fiyat, int kayma, çift stoploss, çift kâr alma, dize yorumu, int magic, datetime son kullanma=0, color arrow_color=CLR_NONE) {
tarihsaat OldCurTime;
int zaman aşımı=30;
int bileti;
OldCurTime=CurTime();
while (GlobalVariableCheck("InTrade") && !IsTradeAllowed()) {
if(OldCurTime+timeout<=CurTime()) {
Print("OrderSendExtended()'de Hata: Zamanaşımı ile karşılaşıldı");
dönüş(0);
}
Uyku(1000);
}
GlobalVariableSet("InTrade", CurTime()); // kilit göstergesini ayarla
bilet = OrderSend(sembol, cmd, hacim, fiyat, kayma, stoploss, kâr alma, yorum, büyü, sona erme, ok_renk);
GlobalVariableDel("Ticaret İçi"); // kilit göstergesini temizle
bilet iadesi);
}Canlı bir hesapta InitialStopLoss'u 10 ile çarpmayı deneyin. Bu EA, 4 haneli brokerler için yazılmıştır.
______________________
Not : Tutarlı olması ve pip olması için TakeProfit'i 10 ile de çarpmalısınız, ancak bu sayılarla test ettiyseniz, geriye dönük testle aynı sonuçları alamazsınız (çünkü geriye doğru test, değerleri kullanmanıza izin verir). ne demo hesabın ne de canlı hesabın size izin vermeyeceği bu ikisi için)
zigflip Son iki psar "son üst/alt psar çifti" veya "son 2 çubuk"taki gibi mi?
geç cevap verdiğim için özür dilerim mladen, e-posta aboneliğim olduğunu sanıyordum ama...
Son psars çiftini kastediyorum!
Ben esas olarak son psarı izlemek istiyorum ama üst/alt değişiklik meydana geldiğinde son iki seviyeye ihtiyaç duyacak, hmm belki x çubuklar geri olmalı… bu, ilk yeni yön psar'ın gelişinde son değişime kadar kırpılır!
Bu konuda yardım için teşekkür ederiz,