İşe yaradı! dürüst olmak gerekirse, VE yerine VEYA yerine koymak gibi bir fikrim vardı .... ama ... :)))))))))))))))))))))))))
teşekkür etmek! şimdi mantık benim için açık, 15 tane kapalı saymama rağmen, kodu bir balon boyutuna şişirmek zorunda kalacağım!
Bütün bunları tek bir döngüye sığdırmak mümkün mü? ve sadece gerekli işlem sayısı parametresini N ?
Son kapatılan N siparişin biletlerini aramada olası seçeneklerden biri buradadır ve gerekli siparişler türe (AL, SAT) ve kârlılığa (kârsız, kârlı) göre filtrelenebilir:
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+//| Автор : TarasBY, taras_bulba@tut.by |//+-----------------------------------------------------------------------------------+//| Функция получает Ticket следующего перед fdt_Time закрытого ордера |//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+int fGet_TicketLastClosePos ( int fi_Type = - 2 , // OrderType()int fi_TypeProfit = 0 , // флаг профитности ордеров: 0 - все, -1 - убыточные, 1 - прибыльныеdatetime fdt_Time = 0 ) // Точка отсчёта времени
{
datetime ldt_CloseTime = 0 , ldt_LastTime = 0 ;
double ld_Profit = 0 .;
int li_Ticket = 0 , li_Total = OrdersHistoryTotal();
//----for ( int li_ORD = li_Total - 1 ; li_ORD >= 0 ; li_ORD--)
{
// if (!fCheck_MyOrders (li_ORD, fi_Type, MODE_HISTORY)) continue ;
// Здесь прописываете свою фильтрацию ордеров
ldt_CloseTime = OrderCloseTime();
//---- Пропускаем ордера, закрытые после указанной датыif (fdt_Time != 0 ) if (fdt_Time <= ldt_CloseTime) continue ;
if (ldt_LastTime >= ldt_CloseTime) continue ;
ld_Profit = OrderProfit();
//---- Фильтруем ордера по профитностиif (fi_TypeProfit > 0 ) if (ld_Profit < 0 .) continue ;
if (fi_TypeProfit < 0 ) if (ld_Profit > 0 .) continue ;
ldt_LastTime = ldt_CloseTime;
li_Ticket = OrderTicket();
}
//----return (li_Ticket);
}
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+//| Автор : TarasBY, taras_bulba@tut.by |//+-----------------------------------------------------------------------------------+//| Функция получает Tickets N закрытых ордеров |//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+int fGet_TicketsLastCloseOrd ( int fi_NUM, // Количество искомых тикетовint & ar_Tickets[], // возвращаемый массив с тикетамиint fi_Type = - 2 , // OrderType()int fi_TypeProfit = 0 ) // флаг профитности ордеров: 0 - все, -1 - убыточные, 1 - прибыльные
{
int li_cnt = 0 , li_Ticket;
datetime ldt_Time = 0 ;
//----for ( int li_IND = 0 ; li_IND < fi_NUM; li_IND++)
{
li_Ticket = fGet_TicketLastClosePos (fi_Type, fi_TypeProfit, ldt_Time);
if (li_Ticket > 0 )
{
li_cnt++;
ArrayResize (ar_Tickets, li_cnt);
ar_Tickets[li_cnt-1] = li_Ticket;
OrderSelect (li_Ticket, SELECT_BY_TICKET);
ldt_Time = OrderCloseTime();
}
elsebreak ;
}
//----return (li_cnt);
}
fGet_TicketsLastCloseOrd() işlevini çağırdıktan sonra, verilen parametreler tarafından bulunan bilet sayısını döndürür, verilen bilet sayısı (fi_NUM) ve işlev tarafından döndürülen değer ile bir kontrol yapabilirsiniz (yaparım). Toplanan tüm biletler, referans yoluyla işleve geçirilen dizide olacaktır.
Ve bu versiyonda, bu son biletlerin kaç tane aranacağı önemli değil. :)
Ve bu son kapatılan siparişlerde kâra ihtiyacınız varsa, o zaman daha da kolay:
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+//| Автор : TarasBY, taras_bulba@tut.by |//+-----------------------------------------------------------------------------------+//| Функция получает Profit N последних закрытых ордеров |//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+double fGet_ProfitLastCloseOrd ( int fi_NUM, // Количество просчитываемых ордеровint fi_Type = - 2 ) // OrderType()
{
int li_Ticket;
double ld_Profit = 0 .;
datetime ldt_Time = 0 ;
//----for ( int li_IND = 0 ; li_IND < fi_NUM; li_IND++)
{
li_Ticket = fGet_TicketLastClosePos (fi_Type, 0 , ldt_Time);
if (li_Ticket > 0 )
{
OrderSelect (li_Ticket, SELECT_BY_TICKET);
ldt_Time = OrderCloseTime();
ld_Profit += (OrderProfit() + OrderSwap() + OrderCommission());
}
elsebreak ;
}
//----return (ld_Profit);
}
Son kapatılan N siparişin biletlerini aramada olası seçeneklerden biri buradadır ve gerekli siparişler türe (AL, SAT) ve kârlılığa (kârsız, kârlı) göre filtrelenebilir:
fGet_TicketsLastCloseOrd() işlevini çağırdıktan sonra, verilen parametreler tarafından bulunan bilet sayısını döndürür, verilen bilet sayısı (fi_NUM) ve işlev tarafından döndürülen değer ile bir kontrol yapabilirsiniz (yaparım). Toplanan tüm biletler, referans yoluyla işleve geçirilen dizide olacaktır.
Ve bu seçenekte, bu son biletlerin kaç tane aranacağı önemli değil. :)
Ve bu son kapatılan siparişlerde kâra ihtiyacınız varsa, o zaman daha da kolay:
çok teşekkürler. Biraz ara vereceğim, neyin ne olduğunu bulmam lazım...
Merhaba, lütfen bu sorunu çözmeme yardım edin: Eurobucks, dolar endeksi ve euro endeksini tek bir göstergede görüntülemek istiyorum, mevcut değerleri birkaç büyüklük derecesinde farklılık gösteriyor. Onları aynı sıradaki değerlere nasıl getirebilirim? Sadece çarpanları ekleyin - bence bir şekilde Feng Shui'ye göre değil ...
tommy27 : Merhaba, lütfen bu sorunu çözmeme yardım edin: Eurobucks, dolar endeksi ve euro endeksini tek bir göstergede görüntülemek istiyorum, mevcut değerleri birkaç büyüklük derecesinde farklılık gösteriyor. Onları aynı sıradaki değerlere nasıl getirebilirim? Sadece çarpanları ekleyin - bence bir şekilde Feng Shui'ye göre değil ...
dk. ve tüm göstergeler için maksimum değeri aynı olacak şekilde ayarlayın
Güzel gün! Profesyonellerin tavsiyesi: Sinyallerini bir danışmanda kullanmak istediğim bir gösterge yazdım . Hangisi daha hızlı çalışacak, gösterge işlevi mi yoksa taşınan gösterge mi?
İşe yaradı! dürüst olmak gerekirse, VE yerine VEYA yerine koymak gibi bir fikrim vardı .... ama ... :)))))))))))))))))))))))))
teşekkür etmek! şimdi mantık benim için açık, 15 tane kapalı saymama rağmen, kodu bir balon boyutuna şişirmek zorunda kalacağım!
Bütün bunları tek bir döngüye sığdırmak mümkün mü? ve sadece gerekli işlem sayısı parametresini N ?
Son kapatılan N siparişin biletlerini aramada olası seçeneklerden biri buradadır ve gerekli siparişler türe (AL, SAT) ve kârlılığa (kârsız, kârlı) göre filtrelenebilir:
fGet_TicketsLastCloseOrd() işlevini çağırdıktan sonra, verilen parametreler tarafından bulunan bilet sayısını döndürür, verilen bilet sayısı (fi_NUM) ve işlev tarafından döndürülen değer ile bir kontrol yapabilirsiniz (yaparım). Toplanan tüm biletler, referans yoluyla işleve geçirilen dizide olacaktır.
Ve bu versiyonda, bu son biletlerin kaç tane aranacağı önemli değil. :)
Ve bu son kapatılan siparişlerde kâra ihtiyacınız varsa, o zaman daha da kolay:
Son kapatılan N siparişin biletlerini aramada olası seçeneklerden biri buradadır ve gerekli siparişler türe (AL, SAT) ve kârlılığa (kârsız, kârlı) göre filtrelenebilir:
fGet_TicketsLastCloseOrd() işlevini çağırdıktan sonra, verilen parametreler tarafından bulunan bilet sayısını döndürür, verilen bilet sayısı (fi_NUM) ve işlev tarafından döndürülen değer ile bir kontrol yapabilirsiniz (yaparım). Toplanan tüm biletler, referans yoluyla işleve geçirilen dizide olacaktır.
Ve bu seçenekte, bu son biletlerin kaç tane aranacağı önemli değil. :)
Ve bu son kapatılan siparişlerde kâra ihtiyacınız varsa, o zaman daha da kolay:
çok teşekkürler. Biraz ara vereceğim, neyin ne olduğunu bulmam lazım...
Merhaba, lütfen bu sorunu çözmeme yardım edin: Eurobucks, dolar endeksi ve euro endeksini tek bir göstergede görüntülemek istiyorum, mevcut değerleri birkaç büyüklük derecesinde farklılık gösteriyor. Onları aynı sıradaki değerlere nasıl getirebilirim? Sadece çarpanları ekleyin - bence bir şekilde Feng Shui'ye göre değil ...
dk. ve tüm göstergeler için maksimum değeri aynı olacak şekilde ayarlayın
Güzel gün! Profesyonellerin tavsiyesi: Sinyallerini bir danışmanda kullanmak istediğim bir gösterge yazdım . Hangisi daha hızlı çalışacak, gösterge işlevi mi yoksa taşınan gösterge mi?
teşekkür ederim
dk. ve tüm göstergeler için maksimum değeri aynı olacak şekilde ayarlayın
hepsi ... 3 droline tamponu için hepsinin tek bir gösterge ile gösterilmesini istiyorum.
tommy27 :
Onları aynı sıradaki değerlere nasıl getirebilirim?
ölçek aynı olmalıdır.
Evet ve bunun için üç arabelleğin tüm değerlerini şu şekilde görüntülemeden önce dönüştürmek mantıklıdır:
Xn=(X-Xmin)/(Xmax-Xmin)
Aptalca yaparsanız, yatay bir çizgi gibi görünen bir şey elde edersiniz.
Eh, MQ'dan ölçeklemeyi kullanırsanız, her şey en iyi tip olacaktır.
Bu olursa, yakında değil, ama belki de asla.
Cevap için teşekkürler.
Ancak aynı şüpheli karşılaştırmayı uzun süredir diğer kodlarda kullanıyorum.
Ve başarılı bir şekilde çalışıyor.
Anlamıyorum - bu durum neden ikinci durumda çalışmıyor. Bu kodlar arasında temel bir fark görmüyorum.