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
Bunu yaparak aynı şeyi yapmıyor muyum?;
if (Saat() 17) TicaretSaati = yanlış;
Anlamı, saat 12 ile 17 arasındaysa TradeHour=true , doğru mu?
(Al/Sat ekstreme && TradeHour ekleme)Aşağıdaki ifadeyi reddetmek:
if(Hour()>=12 && Hour()<17)
TradingEnabled=true;
[/CODE]
is
[CODE]
if(Hour()=17)
TradingEnabled=false;
Bir şey daha Bir işlem yeni açılıp kapatılmışsa, 60 dakika kadar beklemek için koda yeniden giriş gecikmesini nasıl eklerim, ardından işlem koşullarının hala karşılanıp karşılanmadığını tekrar kontrol edin .
Teşekkür ederim
Bir şey daha Bir işlem yeni açılıp kapatılmışsa, 60 dakika kadar beklemek için koda yeniden giriş gecikmesini nasıl eklerim, ardından işlem koşullarının hala karşılanıp karşılanmadığını tekrar kontrol edin. Teşekkür ederim
Talebinizin ne olduğu belli değil.
Bir ticari durum kontrolü ile bir sonraki arasında 60 dakika beklemek ister misiniz?
Bu sizin isteğinizse, bu işe yarayabilir:
// Global variable
bool TradingEnabled = true; // flag to enable/disabled trading logic
bool TradingCheckDone = false; // flag to know if a a check was just done
datetime LastCheckTime = 0; // Time when the last check was done
.... somewhere in EA start() function ....
if( !TradingCheckDone )
{
// Default: We assume that trading logic must run ...
TradingEnabled = true;
// ... but only between 12:00:00 and 16:59:59
if(Hour()=17)
TradingEnabled=false;
// We must remember a check was just done
TradingCheckDone = true;
// We must even know when it was done
LastCheckTime = TimeCurrent();
} else
{
// if a hour has passed since the last check, it's time to retry
if( TimeCurrent() - LastCheckTime >= 3600 )
{
TradingCheckDone = false;
}
}
Talebinizin ne olduğu belli değil.
Bir ticari durum kontrolü ile bir sonraki arasında 60 dakika beklemek ister misiniz?
Bu sizin isteğinizse, bu işe yarayabilir:
// Global variable
bool TradingEnabled = true; // flag to enable/disabled trading logic
bool TradingCheckDone = false; // flag to know if a a check was just done
datetime LastCheckTime = 0; // Time when the last check was done
.... somewhere in EA start() function ....
if( !TradingCheckDone )
{
// Default: We assume that trading logic must run ...
TradingEnabled = true;
// ... but only between 12:00:00 and 16:59:59
if(Hour()=17)
TradingEnabled=false;
// We must remember a check was just done
TradingCheckDone = true;
// We must even know when it was done
LastCheckTime = TimeCurrent();
} else
{
// if a hour has passed since the last check, it's time to retry
if( TimeCurrent() - LastCheckTime >= 3600 )
{
TradingCheckDone = false;
}
}
Hayır, sadece bir Ticaret yeni gerçekleştiyse ve kapandıysa, EA'nın bir saat beklemesini ve ardından ticaret koşullarının hala karşılanıp karşılanmadığını kontrol etmesini istiyorum, eğer öyleyse, o zaman tamam, tekrar ticaret yapın ama öyle değilse. Bu kod o zaman istediğimi yapacak mı? Bu, TimeCurrent kontrolü nedeniyle test cihazında çalışacak mı?
EDIT: Her saat bir işlem kapandıktan hemen sonra kontrolü yapmayın, sonra durum kontrolü için bir saat bekleyin ve o kadar. Ardından, bir günde başka bir İşlem oluşturulur ve kapanırsa, bir saat daha bekleyin ve sinyal yoksa, bir sonraki işlemin açılıp kapanmasına kadar bekleyen kontroller yoktur.
Teşekkür ederim
Bahsettiğim doğru ayarlarla değiştirebilirseniz, ekli küçük bir EA. teşekkürler
Buy_Limit ve Buy_Stop
Limit emri ile Stop emri arasındaki fark nedir?
teşekkürler
Herkese selam,
Bir EA'dan yapılandırma ayarlarını yönetmek için bir dizi işlev geliştirdim.
Bu işlevler bir c++ DLL tarafından dışa aktarılır ve dışa aktarılan işlevlerin her biri MQL4'üm için istenen __stdcall çağrı kuralına sahiptir.
Sorunum, bir işlevin EA'ya bir dize döndürmesi gerektiğinde ortaya çıkıyor.
Doğal olarak işlev şunları yapamaz:
- bir işaretçiyi yerel bir değişkene döndürür (değişken kapsam dışına çıkar)
- bir dll global değişkenine bir işaretçi döndürme (eşzamanlı erişimle ilgili sorunlar)
- yığın ayrılmış bir dizgeye bir işaretçi döndür (EA'dan çağrılacak belleği boşaltmak için işlevlere ihtiyaç var: Bu yaklaşımı sevmiyorum)
Bu yüzden EA'dan bir dize ve dize boyutu iletmeye karar verdim. Es:
string buffer;
GetString( buffer, 30 );
[/CODE]
and from the c++ dll, something like this
void __stdcall GetString( LPTSTR buffer, int BufSize )
{
// Read a string from a some source
....
// -1 to take into account the terminating null character
StringCchCopy( buffer, BufSize-1, ReadStringFromASource );
}
[/CODE]
Here starts the weird behaviour of MQL managing strings returned from a DLL.
using the following code:
string buffer;
GetString( buffer, 30 );
the first time buffer contains the right string. A first question arises: buffer is not initialized but after calling GetString it contains the string returned. I have to suppose that MQL allocates space for a string variable when it's declared.
Next time GetString() is called the string returned seems to be truncated to the length-1 of the previous string length and not resetted as expected because of the 'string buffer;' statement.
Tried even:
[CODE]
string buffer = " "; // 'allocate' 30 blank characters
GetString( buffer, StringLen(buffer) );
but after the first time, when the execution returns to this code, the assignment of buffer does not work any more and buffer still contains the previous read string, and it seems it can only contains the number of characters of his content.
At first I have thought that the null character is not handled very well by MQL and modified the c++ code like this ...
[CODE]
CopyMemory( buffer, ReadStringFromASource, min(BufferSize,ReadStringFromASourceLength) );
ve sonlandırıcı boş karakteri eklememek.
Ancak MQL'den çağrıldığında hiçbir dize dönmüyor.
Birinin cevabı var mı?DLL'lerden dize döndürmede sorun yaşayan yok mu?
Yardıma ihtiyacım var..
Biri bana bir kod gösterebilir mi? EA'ma eklemek için ..
Sinyal başına bir sipariş..Çünkü bazen 3 sinyalim var farklı TF'nin nedeni..Tüm sinyallerin açılmasını istiyorum..
veya çubuk başına bir sipariş alacak, ancak her Zaman Çerçevesi bir EA'ya eklenecek bir kod .. çok fazla grafik açmak istemiyorum ..
BuyStop'umda sorun ne?
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Distance*Point,Slippage,Bid-Distance-StopLoss*Point,Ask+Distance+TakeProfit*Point,"",MagicNumber,0,Blue);
BuyStop'umda sorun ne?
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+Distance*Point,Slippage,Bid-Distance-StopLoss*Point,Ask+Distance+TakeProfit*Point,"",MagicNumber,0,Blue);
Kaybetmeyi Durdur ve Kar Al ..
eklemeden önce mesafenize *noktasını da eklemelisiniz..
VEYA
Teklif-((Mesafe-StopLoss)*Puan),Sor+((Mesafe+Kar Al)*Puan)