Mevcut gün için karı belirleyen bir fonksiyon yazmaya çalışıyorum:
Lütfen bana işlevde nasıl olduğunu söyle
geçerli günden başlayarak bir dönem belirtin. Dönemin sonunun to_date=TimeCurrent() olduğu açıktır, from_date döneminin başlangıcı tam olarak geçerli günden 00:00:00'dan başlayacak şekilde nasıl doğru bir şekilde belirlenir?
intCopyTime (
string symbol_name, // имя символаENUM_TIMEFRAMES timeframe, // период PERIOD_D1int start_pos, // откуда начнем 0int count, // сколько копируем 1datetime time_array[] // массив для копирования времени открытия. Объявить заранее
Bugün en az bir tik olduğunu varsayarsak, algoritma şu şekildedir: şimdiki zamanı MqlDateTime yapısına gönderiyoruz . Daha sonra bu yapıda saatleri, dakikaları ve saniyeleri sıfırlıyoruz. Düzenlenen yapıyı zamanla dönüştürmek için kalır:
Sonuç:
Teşekkür ederim! Bir işlev eklersem başka bir soru:
//+------------------------------------------------------------------+//|Функция возвращает прибыль за текущие сутки |//+------------------------------------------------------------------+double Day_Profit()
{
//--Запрашиваем историю сделок за последнии суткиHistorySelect ( TimeCurrent ()- PeriodSeconds ( PERIOD_D1 ), TimeCurrent ());
uint total = HistoryDealsTotal (); // количество сделок в историиulong ticket = 0 ; // тикет сделки в историиlong type = 0 ; // тип сделкиdouble profit = 0.0 ; // финансовый результат сделкиdouble commission = 0.0 ; // коммиссия по сделкеdouble DayProfit = 0.0 ; // прибыль за текущие сутки//--- for all dealsfor ( uint i= 0 ; i<total; i++)
{
if ((ticket= HistoryDealGetTicket (i))> 0 ) //--- если имеются сделки, то...
{
profit = HistoryDealGetDouble (ticket, DEAL_PROFIT );
commission = HistoryDealGetDouble (ticket, DEAL_COMMISSION );
if ( HistoryDealGetInteger (ticket, DEAL_TYPE )!= DEAL_TYPE_BALANCE )
{
DayProfit+=(profit+commission);
}
}
}
return (DayProfit);
}
//+------------------------------------------------------------------+
Uzman Danışman olarak, işlemlerin analiz edildiği dönem nasıl güncellenecek? Danışmanın birkaç gün çalıştığını varsayalım, o zaman ertesi günün başlangıcı ile süre güncellenecek mi?
Teşekkür ederim! Bir işlev eklersem başka bir soru:
Uzman Danışman olarak, işlemlerin analiz edildiği dönem nasıl güncellenecek? Danışmanın birkaç gün çalıştığını varsayalım, o zaman ertesi günün başlangıcı ile süre güncellenecek mi?
Uzman Danışmanda yukarıdaki işlevin uygulanması:
Saat, günün başlangıcından geçerli saate + gün veya + üç gün olarak ayarlanmalıdır.
Günün başlangıcı nasıl belirlenir - zaten biliyorsunuz.
Bir enstrüman için sipariş vermeden önce spreadin belirlenmesine ihtiyaç vardır. Standart MQL5 kitaplıkları , CSymbolInfo sınıfını içerir. O zaman bu kontrolü en iyi nasıl uygulayacağımı düşündüm - CSymbolInfo aracılığıyla mı yoksa bir işlev mi kullanacağım? Uzmanlar, bana bunu yapmanın en iyi yolunu söyleyin! Bu konu daha önce gündeme geldiyse, beni doğru yöne gönderirseniz çok minnettar olacağım.
Biraz tavsiyeye ihtiyacım var. EA farklı zaman dilimlerinden sinyal modülleri içeriyorsa, çubuklar nasıl hesaplanır?
Örneğin, stokastik tabanlı iki sinyal modülü içeren basit bir Uzman Danışman vardır (ana hat 0 ve 1 çubuklarında sinyal hattının üzerindeyken - AL, 0 ve 1 çubuklarında sinyal hattının altında - SAT) - bir H1, diğeri M15'te. Her iki modülün ağırlıkları aynıdır ve Expert Advisor'da bir işlem açmak için eşik değeri, her iki modülün sinyallerinin aynı anda dikkate alınması gerektiği şekilde ayarlanır. EA, H1 zaman çerçevesi ile grafik üzerinde çalışır. H1'deki ekran görüntüsüne bakarsanız, her şey açıktır - son ve sondan bir önceki çubuklarda, ana hat sinyal hattından daha yüksektir, bu yüzden satın alıyoruz. Ancak M15 grafiğinde hangi çubuğun 0, hangisinin 1 olarak kabul edilmesi gerektiğini bulamıyorum. Anlaşma açık, yani M15'te anlaşma koşulunun yerine getirilmesi gerekiyor.
Örneğin, stokastik tabanlı iki sinyal modülü içeren basit bir Uzman Danışman vardır (ana hat 0 ve 1 çubuklarında sinyal hattının üzerindeyken - AL, 0 ve 1 çubuklarında sinyal hattının altında - SAT) - bir H1, diğeri M15'te.
Sıfır çubuğu KÖTÜ! 1 çubukta - kapalı gibi hesaplanan geçmiş üzerindeki göstergeyi görürsünüz (yeniden çizme olasılığını hesaba katmazsanız iyi, basitleştirilmiş). Buna göre, kapalı bir çubuğa dayalı stratejiler oluşturun ve test cihazında, MT4'teki eski TF'den gelen gösterge, kapalı olarak sıfır bir çubuğun bile sonucunu size önceden gösterecektir - yani. gelecekten.
Ve sonuç olarak, hayal kırıklığı: grafikte bir şey, test cihazında başka bir şey, ancak gerçek zamanlı olarak her şey tam tersi.
Sözüme güvenin, bu yüzden sistem hatasının nerede olduğunu bulana kadar hayatımın yarısını kaybettim. Daha yüksek zaman dilimlerinin göstergelerinin çalışmasını daha genç olanda doğru bir şekilde görüntülemek için, özel bir yaklaşıma ihtiyaç vardır, örneğin Masha ile, her şey basittir - periyodu zaman dilimleri ve sıra oranıyla çarparlar, ancak eğer varsa -doğrusal hesaplamalar, o zaman 0 bar'da hesaplamanın yalnızca bir taklidi vardır.
Grafikte kıdemli TF'yi doğru şekilde göstermesi için bir yıl boyunca RSI'yi kırdım.
Israr etmiyorum, en azından mevcut TF ile ilgili olarak özellikle eski olanlardan kapalı çubuklardan gelen sinyalleri kullanmanızı ve ayrıca özellikle özel göstergeler olmak üzere yeniden çizimi kontrol etmenizi öneririm.
Biraz tavsiyeye ihtiyacım var. EA farklı zaman dilimlerinden sinyal modülleri içeriyorsa, çubuklar nasıl hesaplanır?
Örneğin, stokastik tabanlı iki sinyal modülü içeren basit bir Uzman Danışman vardır (ana hat 0 ve 1 çubuklarında sinyal hattının üzerindeyken - AL, 0 ve 1 çubuklarında sinyal hattının altında - SAT) - bir H1, diğeri M15'te. Her iki modülün ağırlıkları aynıdır ve Expert Advisor'da bir işlem açmak için eşik değeri, her iki modülün sinyallerinin aynı anda dikkate alınması gerektiği şekilde ayarlanır. EA, H1 zaman çerçevesi ile grafik üzerinde çalışır. H1'in ekran görüntüsüne bakarsanız, her şey açıktır - son ve sondan bir önceki çubuklarda, ana hat sinyal hattının üzerindedir, bu yüzden satın alıyoruz. Ancak M15 grafiğinde hangi çubuğun 0, hangisinin 1 olarak kabul edilmesi gerektiğini bulamıyorum. Anlaşma açık, bu da anlaşma koşulunun M15'te de karşılanması gerektiği anlamına geliyor.
Tarihte, zaten kapalı çubuklar görüyorsunuz ve sıfır kötü değil, ancak hareketlidir ve mevcut fiyata bağlı olarak oluştuğu için bunu dikkate almanız gerekir ve fiyat sırasında stokastik yönünde değişiklikler mümkündür. atlar, bu yüzden daha hassastır, örneğin kapanabilir.
Açık 0 && 1 && 2 için başka bir çubuk eklemeyi deneyin. belki giderler küçülür.
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
Tünaydın!
Mevcut gün için karı belirleyen bir fonksiyon yazmaya çalışıyorum:
Lütfen bana işlevde nasıl olduğunu söyle
geçerli günden başlayarak bir dönem belirtin. Dönemin sonunun to_date=TimeCurrent() olduğu açıktır, from_date döneminin başlangıcı tam olarak geçerli günden 00:00:00'dan başlayacak şekilde nasıl doğru bir şekilde belirlenir?Tatmak için seçin:
Ya da en çok, en çok. ki zaten önerilmiş.
Bugün en az bir tik olduğunu varsayarsak, algoritma şu şekildedir: şimdiki zamanı MqlDateTime yapısına gönderiyoruz . Daha sonra bu yapıda saatleri, dakikaları ve saniyeleri sıfırlıyoruz. Düzenlenen yapıyı zamanla dönüştürmek için kalır:
Sonuç:
Teşekkür ederim! Bir işlev eklersem başka bir soru:
Uzman Danışman olarak, işlemlerin analiz edildiği dönem nasıl güncellenecek? Danışmanın birkaç gün çalıştığını varsayalım, o zaman ertesi günün başlangıcı ile süre güncellenecek mi?
Uzman Danışmanda yukarıdaki işlevin uygulanması:
Teşekkür ederim! Bir işlev eklersem başka bir soru:
Uzman Danışman olarak, işlemlerin analiz edildiği dönem nasıl güncellenecek? Danışmanın birkaç gün çalıştığını varsayalım, o zaman ertesi günün başlangıcı ile süre güncellenecek mi?
Uzman Danışmanda yukarıdaki işlevin uygulanması:
Saat, günün başlangıcından geçerli saate + gün veya + üç gün olarak ayarlanmalıdır.
Günün başlangıcı nasıl belirlenir - zaten biliyorsunuz.
Tünaydın!
Bir enstrüman için sipariş vermeden önce spreadin belirlenmesine ihtiyaç vardır. Standart MQL5 kitaplıkları , CSymbolInfo sınıfını içerir. O zaman bu kontrolü en iyi nasıl uygulayacağımı düşündüm - CSymbolInfo aracılığıyla mı yoksa bir işlev mi kullanacağım? Uzmanlar, bana bunu yapmanın en iyi yolunu söyleyin! Bu konu daha önce gündeme geldiyse, beni doğru yöne gönderirseniz çok minnettar olacağım.
Tünaydın!
Biraz tavsiyeye ihtiyacım var. EA farklı zaman dilimlerinden sinyal modülleri içeriyorsa, çubuklar nasıl hesaplanır?
Örneğin, stokastik tabanlı iki sinyal modülü içeren basit bir Uzman Danışman vardır (ana hat 0 ve 1 çubuklarında sinyal hattının üzerindeyken - AL, 0 ve 1 çubuklarında sinyal hattının altında - SAT) - bir H1, diğeri M15'te. Her iki modülün ağırlıkları aynıdır ve Expert Advisor'da bir işlem açmak için eşik değeri, her iki modülün sinyallerinin aynı anda dikkate alınması gerektiği şekilde ayarlanır. EA, H1 zaman çerçevesi ile grafik üzerinde çalışır. H1'deki ekran görüntüsüne bakarsanız, her şey açıktır - son ve sondan bir önceki çubuklarda, ana hat sinyal hattından daha yüksektir, bu yüzden satın alıyoruz. Ancak M15 grafiğinde hangi çubuğun 0, hangisinin 1 olarak kabul edilmesi gerektiğini bulamıyorum. Anlaşma açık, yani M15'te anlaşma koşulunun yerine getirilmesi gerekiyor.
Örneğin, stokastik tabanlı iki sinyal modülü içeren basit bir Uzman Danışman vardır (ana hat 0 ve 1 çubuklarında sinyal hattının üzerindeyken - AL, 0 ve 1 çubuklarında sinyal hattının altında - SAT) - bir H1, diğeri M15'te.
Tünaydın!
Biraz tavsiyeye ihtiyacım var. EA farklı zaman dilimlerinden sinyal modülleri içeriyorsa, çubuklar nasıl hesaplanır?
Örneğin, stokastik tabanlı iki sinyal modülü içeren basit bir Uzman Danışman vardır (ana hat 0 ve 1 çubuklarında sinyal hattının üzerindeyken - AL, 0 ve 1 çubuklarında sinyal hattının altında - SAT) - bir H1, diğeri M15'te. Her iki modülün ağırlıkları aynıdır ve Expert Advisor'da bir işlem açmak için eşik değeri, her iki modülün sinyallerinin aynı anda dikkate alınması gerektiği şekilde ayarlanır. EA, H1 zaman çerçevesi ile grafik üzerinde çalışır. H1'in ekran görüntüsüne bakarsanız, her şey açıktır - son ve sondan bir önceki çubuklarda, ana hat sinyal hattının üzerindedir, bu yüzden satın alıyoruz. Ancak M15 grafiğinde hangi çubuğun 0, hangisinin 1 olarak kabul edilmesi gerektiğini bulamıyorum. Anlaşma açık, bu da anlaşma koşulunun M15'te de karşılanması gerektiği anlamına geliyor.
Tarihte, zaten kapalı çubuklar görüyorsunuz ve sıfır kötü değil, ancak hareketlidir ve mevcut fiyata bağlı olarak oluştuğu için bunu dikkate almanız gerekir ve fiyat sırasında stokastik yönünde değişiklikler mümkündür. atlar, bu yüzden daha hassastır, örneğin kapanabilir.
Açık 0 && 1 && 2 için başka bir çubuk eklemeyi deneyin. belki giderler küçülür.