göstergeyi düzeltmeye yardım et - Son çubuğu bulamıyorum!
gösterge, bahsin her 2 çubukta bir yapılacağı gerçeğini dikkate alarak ikili opsiyonlar için bir dizi sürekli kazanç hesaplar (yani bir - kazandı / kaybettikten sonra mevcut çubuğu beklersiniz), harici değişken analizidir. fiyat artışı veya düşüşü için önceki çubuğun fiyatı
her şey çalışıyor gibi görünüyor, ancak çevrimiçi son çubuk yanlış hesaplanıyor ve sonuç olarak, göstergeyi M1'e koyarsanız, geçmişten gelen veriler doğru bir şekilde hesaplanacak ve çevrimiçi olarak hesaplanan her şey artık doğru değil, kod:
Задавайте вопросы по техническому анализу, обсуждайте торговые системы и улучшайте свои навыки программирования торговых стратегий на языке MQL5. Общайтесь и обменивайтесь опытом на форуме с трейдерами всего мира и помогайте ответами новичкам — наше сообщество развивается вместе с вами. Ошибки, баги, вопросы Ошибка после команды CopyClose...
yur4ik : Merhaba! Lütfen pozisyonları kapatmak için sinyal modülüne yardım edin. Neyi yanlış yapıyorum?
Dosyanız SİNYALLER modülüdür. Expert Advisor sisteminde USER göstergesinin SİNYALLER modülü ile aynı şekilde inşa edilmiştir. Diğer bir deyişle, modülünüz tarafından üretilen sinyallerin bir AĞIRLIĞI vardır ve bu ağırlık sinyali tetiklemek için yeterli olmayabilir.
Davanızda kapatmayı en iyi nasıl yapacağınızı düşünmeniz gerekir. Belki de bu sinyal modülünde yapılmamalıdır.
Dosyanız SİNYALLER modülüdür. Expert Advisor sisteminde USER göstergesinin SİNYALLER modülü ile aynı şekilde inşa edilmiştir. Diğer bir deyişle, modülünüz tarafından üretilen sinyallerin bir AĞIRLIĞI vardır ve bu ağırlık sinyali tetiklemek için yeterli olmayabilir.
Davanızda kapatmayı en iyi nasıl yapacağınızı düşünmeniz gerekir. Belki de bu sinyal modülünde yapılmamalıdır.
Bir sinyal modülü şeklinde olması arzu edilir, böylece danışman jeneratörü aracılığıyla toplamak mümkün olacaktır. Bu modülün tetiklenmesi gerektiği anda, danışmanın ikinci modülündeki LongCondition() ve ShortCondition() sıfır değerleri döndürüyor - yani ağırlık = 0, doğru mu anladım? Buna göre, bu modülün sinyalinin ağırlığı ağır basmalıdır, ancak çalışmaz. CheckCloseLong() ve CheckCloseShort()'ta Print("-------------"); satırlarını ekledim. ve Print(time_GMT_DST()); modülün normal çalışması sırasında, her bir onay işaretinin alınmasından sonra uygun günlük girişlerinin yapılması gerekir, doğru anladım mı? Hiçbir giriş yapılmaz, CheckCloseLong() ve CheckCloseShort() çağrılmaz. Amaç ne?
Tabii ki beceriksizce açıklıyorum ama yeni öğreniyorum
Bir sinyal modülü şeklinde olması arzu edilir, böylece danışman jeneratörü aracılığıyla toplamak mümkün olacaktır. Bu modülün tetiklenmesi gerektiği anda, danışmanın ikinci modülündeki LongCondition() ve ShortCondition() sıfır değerleri döndürüyor - yani ağırlık = 0, doğru mu anladım? Buna göre, bu modülün sinyalinin ağırlığı ağır basmalıdır, ancak çalışmaz. CheckCloseLong() ve CheckCloseShort()'ta Print("-------------"); satırlarını ekledim. ve Print(time_GMT_DST()); hangi, modülün normal çalışması sırasında, her bir işaret geldiğinde günlükte uygun girişleri yapmalı, doğru anladım mı? Hiçbir giriş yapılmaz, CheckCloseLong() ve CheckCloseShort() çağrılmaz. Amaç ne?
Tabii ki beceriksizce açıklıyorum ama yeni öğreniyorum
Yöntemleri Kullan
//--- methods of checking if the market models are formedvirtualint LongCondition( void );
virtualint ShortCondition( void );
Merhaba, bana kaybetme esnafını nasıl karşılayacağımı söyle? EA, geçmişteki son ticareti analiz eder - eğer kârsızsa, değişkene +1 ekler, bu da art arda kârsız işlemlerin sayısı olacaktır.
Karlı bir ticaret gerçekleşir gerçekleşmez, değişken sıfıra sıfırlanmalıdır.
Merhaba, bana kaybetme esnafını nasıl karşılayacağımı söyle? EA, geçmişteki son ticareti analiz eder - eğer kârsızsa, değişkene +1 ekler, bu da art arda kârsız işlemlerin sayısı olacaktır.
Karlı bir ticaret gerçekleşir gerçekleşmez, değişken sıfıra sıfırlanmalıdır.
İşlem geçmişiyle çalışmayı reddedebilir ve yalnızca OnTradeTransaction() 'da çalışabilirsiniz - orada "OUT" türüyle bir anlaşma yapabilirsiniz - yani bu, pozisyonun kapanması olacaktır. Böyle bir işlem bulunur bulunmaz, kârlı mı yoksa kârsız mı olduğuna karar veririz. Buna göre " kayıp " sayacı sıfırlanır veya arttırılır.
//+------------------------------------------------------------------+//| TradeTransaction function |//+------------------------------------------------------------------+voidOnTradeTransaction ( constMqlTradeTransaction &trans,
constMqlTradeRequest &request,
constMqlTradeResult &result)
{
//--- get transaction type as enumeration value ENUM_TRADE_TRANSACTION_TYPE type=trans.type;
//--- if transaction is result of addition of the transaction in historyif (type== TRADE_TRANSACTION_DEAL_ADD )
{
long deal_ticket = 0 ;
long deal_order = 0 ;
long deal_time = 0 ;
long deal_time_msc = 0 ;
long deal_type =- 1 ;
long deal_entry =- 1 ;
long deal_magic = 0 ;
long deal_reason =- 1 ;
long deal_position_id = 0 ;
double deal_volume = 0.0 ;
double deal_price = 0.0 ;
double deal_commission = 0.0 ;
double deal_swap = 0.0 ;
double deal_profit = 0.0 ;
string deal_symbol = "" ;
string deal_comment = "" ;
string deal_external_id = "" ;
if ( HistoryDealSelect (trans.deal))
{
deal_ticket = HistoryDealGetInteger (trans.deal, DEAL_TICKET );
deal_order = HistoryDealGetInteger (trans.deal, DEAL_ORDER );
deal_time = HistoryDealGetInteger (trans.deal, DEAL_TIME );
deal_time_msc = HistoryDealGetInteger (trans.deal, DEAL_TIME_MSC );
deal_type = HistoryDealGetInteger (trans.deal, DEAL_TYPE );
deal_entry = HistoryDealGetInteger (trans.deal, DEAL_ENTRY );
deal_magic = HistoryDealGetInteger (trans.deal, DEAL_MAGIC );
deal_reason = HistoryDealGetInteger (trans.deal, DEAL_REASON );
deal_position_id = HistoryDealGetInteger (trans.deal, DEAL_POSITION_ID );
deal_volume = HistoryDealGetDouble (trans.deal, DEAL_VOLUME );
deal_price = HistoryDealGetDouble (trans.deal, DEAL_PRICE );
deal_commission = HistoryDealGetDouble (trans.deal, DEAL_COMMISSION );
deal_swap = HistoryDealGetDouble (trans.deal, DEAL_SWAP );
deal_profit = HistoryDealGetDouble (trans.deal, DEAL_PROFIT );
deal_symbol = HistoryDealGetString (trans.deal, DEAL_SYMBOL );
deal_comment = HistoryDealGetString (trans.deal, DEAL_COMMENT );
deal_external_id = HistoryDealGetString (trans.deal, DEAL_EXTERNAL_ID );
}
elsereturn ;
if (deal_symbol== Symbol () && deal_magic==m_magic)
if (deal_entry== DEAL_ENTRY_OUT )
{
if (deal_commission+deal_swap+deal_profit> 0 )
{
losses= 0 ;
}
else
{
losses++;
}
}
}
}
Ve OnInit()'te yapılacak ticaret geçmişini kontrol edin - danışmanın başlangıcında bir kez.
göstergeyi düzeltmeye yardım et - Son çubuğu bulamıyorum!
gösterge, bahsin her 2 çubukta bir yapılacağı gerçeğini dikkate alarak ikili opsiyonlar için bir dizi sürekli kazanç hesaplar (yani bir - kazandı / kaybettikten sonra mevcut çubuğu beklersiniz), harici değişken analizidir. fiyat artışı veya düşüşü için önceki çubuğun fiyatı
her şey çalışıyor gibi görünüyor, ancak çevrimiçi son çubuk yanlış hesaplanıyor ve sonuç olarak, göstergeyi M1'e koyarsanız, geçmişten gelen veriler doğru bir şekilde hesaplanacak ve çevrimiçi olarak hesaplanan her şey artık doğru değil, kod:
şimdiden teşekkürler!
Merhaba! Lütfen pozisyonları kapatmak için sinyal modülüne yardım edin. Neyi yanlış yapıyorum?
Dosyanız SİNYALLER modülüdür. Expert Advisor sisteminde USER göstergesinin SİNYALLER modülü ile aynı şekilde inşa edilmiştir. Diğer bir deyişle, modülünüz tarafından üretilen sinyallerin bir AĞIRLIĞI vardır ve bu ağırlık sinyali tetiklemek için yeterli olmayabilir.
Davanızda kapatmayı en iyi nasıl yapacağınızı düşünmeniz gerekir. Belki de bu sinyal modülünde yapılmamalıdır.
Dosyanız SİNYALLER modülüdür. Expert Advisor sisteminde USER göstergesinin SİNYALLER modülü ile aynı şekilde inşa edilmiştir. Diğer bir deyişle, modülünüz tarafından üretilen sinyallerin bir AĞIRLIĞI vardır ve bu ağırlık sinyali tetiklemek için yeterli olmayabilir.
Davanızda kapatmayı en iyi nasıl yapacağınızı düşünmeniz gerekir. Belki de bu sinyal modülünde yapılmamalıdır.
Bir sinyal modülü şeklinde olması arzu edilir, böylece danışman jeneratörü aracılığıyla toplamak mümkün olacaktır. Bu modülün tetiklenmesi gerektiği anda, danışmanın ikinci modülündeki LongCondition() ve ShortCondition() sıfır değerleri döndürüyor - yani ağırlık = 0, doğru mu anladım? Buna göre, bu modülün sinyalinin ağırlığı ağır basmalıdır, ancak çalışmaz. CheckCloseLong() ve CheckCloseShort()'ta Print("-------------"); satırlarını ekledim. ve Print(time_GMT_DST()); modülün normal çalışması sırasında, her bir onay işaretinin alınmasından sonra uygun günlük girişlerinin yapılması gerekir, doğru anladım mı? Hiçbir giriş yapılmaz, CheckCloseLong() ve CheckCloseShort() çağrılmaz. Amaç ne?
Tabii ki beceriksizce açıklıyorum ama yeni öğreniyorumBir sinyal modülü şeklinde olması arzu edilir, böylece danışman jeneratörü aracılığıyla toplamak mümkün olacaktır. Bu modülün tetiklenmesi gerektiği anda, danışmanın ikinci modülündeki LongCondition() ve ShortCondition() sıfır değerleri döndürüyor - yani ağırlık = 0, doğru mu anladım? Buna göre, bu modülün sinyalinin ağırlığı ağır basmalıdır, ancak çalışmaz. CheckCloseLong() ve CheckCloseShort()'ta Print("-------------"); satırlarını ekledim. ve Print(time_GMT_DST()); hangi, modülün normal çalışması sırasında, her bir işaret geldiğinde günlükte uygun girişleri yapmalı, doğru anladım mı? Hiçbir giriş yapılmaz, CheckCloseLong() ve CheckCloseShort() çağrılmaz. Amaç ne?
Tabii ki beceriksizce açıklıyorum ama yeni öğreniyorumYöntemleri Kullan
CheckCloseLong ve CheckCloseShort yerine.
Teşekkür ederim.
Merhaba, bana kaybetme esnafını nasıl karşılayacağımı söyle?
EA, geçmişteki son ticareti analiz eder - eğer kârsızsa, değişkene +1 ekler, bu da art arda kârsız işlemlerin sayısı olacaktır.
Karlı bir ticaret gerçekleşir gerçekleşmez, değişken sıfıra sıfırlanmalıdır.
Merhaba, bana kaybetme esnafını nasıl karşılayacağımı söyle?
EA, geçmişteki son ticareti analiz eder - eğer kârsızsa, değişkene +1 ekler, bu da art arda kârsız işlemlerin sayısı olacaktır.
Karlı bir ticaret gerçekleşir gerçekleşmez, değişken sıfıra sıfırlanmalıdır.
İşlem geçmişiyle çalışmayı reddedebilir ve yalnızca OnTradeTransaction() 'da çalışabilirsiniz - orada "OUT" türüyle bir anlaşma yapabilirsiniz - yani bu, pozisyonun kapanması olacaktır. Böyle bir işlem bulunur bulunmaz, kârlı mı yoksa kârsız mı olduğuna karar veririz. Buna göre " kayıp " sayacı sıfırlanır veya arttırılır.
Ve OnInit()'te yapılacak ticaret geçmişini kontrol edin - danışmanın başlangıcında bir kez.Merhaba,
Bilgi görüntülemeden önce uzman günlüğünün programlı olarak nasıl temizleneceğini söyleyebilir misiniz?
Yalnızca Win API aracılığıyla mı?
Teşekkür ederim!
Merhaba,
Bilgi görüntülemeden önce uzman günlüğünün programlı olarak nasıl temizleneceğini söyleyebilir misiniz?
Yalnızca Win API aracılığıyla mı?
Teşekkür ederim!