Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım 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
Bana yardım ettikten sonra aşağıdaki kod mükemmel çalışıyor, teşekkürler dostum.
Ve dediğiniz gibi yeniden adlandırdım, işe yarıyor ama merak ediyorum, yanlış bir şey mi yapıyorum?
(sadece endişeleniyorum )
Kodunuzun çalışıp çalışmayacağı konusunda endişelenmek çok normaldir (aslında sağlıklıdır). Sıklıkla derlenen ancak istediğimizi yapmayan (insan hatası ve/veya bilgi eksikliği nedeniyle) kodlar göreceğiz.
En iyi yol, değişkenleri yazdırma ve dönüş kodlarını kontrol etme alışkanlığını edinmektir. Test ettikten sonra, print deyimlerini kaldırabilirsiniz.
Yukarıdaki kod parçacığınızı kullanarak basit bir Print("SL değeri: "+sl) ekleyebilir ve ardından değerlerin beklediğiniz gibi olup olmadığını görmek için Uzman günlüğünüzü kontrol edebilirsiniz.
Tasarlandığı gibi çalışıyorsa, yanlış bir şey yapmıyorsanız basittir, aksi takdirde çalışmaz.
#Onay işareti - Kapalı
Evet! Bu bitmap etiketinin benden uzun zaman aldığını kabul ediyorum. Sonunda istediğimi elde ettim...
Tabii ki koca adam, yardımın için teşekkürler.
Sorunumu aşağıdaki kod gibi çözüyorum.
{
// Sell set Stop Loss with bitmap label
// when bitmap label shows - ON
if ( ObjectGetInteger ( 0 , "bitmap label on off" , OBJPROP_STATE ) == true )
{
sl = Bid + points_to_change( stoploss * 10 );
Print ( " | TRUE : Active | " , "Bid: " , Bid , " | " , "Stop Loss: " , sl );
}
// when bitmap label shows - OFF
if ( ObjectGetInteger ( 0 , "bitmap label on off" , OBJPROP_STATE ) == false )
{
sl = 0 ;
Print ( " | FALSE : Inactive | " , "Bid: " , Bid , " | " , "Stop Loss: " , sl );
}
// call your stop loss 'sl'
ticket = OrderSend ( ..., sl, ... );
// sounds
if ( ticket > 0 )
{ PlaySound ( "ok.wav" ); } else
{ PlaySound ( "timeout.wav" ); }
return ;
}
En iyi yol, değişkenleri yazdırma ve dönüş kodlarını kontrol etme alışkanlığını edinmektir. Test ettikten sonra, print deyimlerini kaldırabilirsiniz.
Yukarıdaki kod parçacığınızı kullanarak basit bir Print("SL değeri: "+sl) ekleyebilir ve ardından değerlerin beklediğiniz gibi olup olmadığını görmek için Uzman günlüğünüzü kontrol edebilirsiniz.
Onu zaten kullanıyorum, ancak bazen kodumdan şüphe duyuyorum çünkü #Checkmark sorunumu kontrol ederseniz , beni daha net anlayacağınızı umuyorum.
Her neyse, zaman ayırdığınız için teşekkürler.
Neden 10 ile çarpıyorsun? Stoploss piplerdeyse, 4 haneli brokerlerde çalışması için pip_to_change aracılığıyla dönüştürün.
Ey! Evet dostum, güzel soru, çoktan değiştim. İlginiz için teşekkürler.
#Zararı Durdur / Kar Al - Kapalı
Daha net yorumlarınız için teşekkürler Marco.
@Marco vd Heijden'e özel teşekkürlerSenin için her şeyin en iyisini dilerim.
#Ctrl + Fare Düğmesi - Aç
Birkaç saat geçirdim, bununla ilgili iyi belgeleri nasıl bulabilirim ve bunun için iyi bir bilgi ve belge bulamıyorum.
Lot boyutunu 0,1 oranında artırmak için ' Sol Fare + Ctrl 'ye tıkladığımda ihtiyacım var. (normalde 0.01 artar).
Bununla ilgili örnek belgeler ve makaleler bulmak istiyorum.
Şimdiden teşekkürler.
#Ctrl + Fare Düğmesi - Aç
Birkaç saat geçirdim, bununla ilgili iyi belgeleri nasıl bulabilirim ve bunun için iyi bir bilgi ve belge bulamıyorum.
Lot boyutunu 0,1 oranında artırmak için ' Sol Fare + Ctrl 'ye tıkladığımda ihtiyacım var. (normalde 0.01 artar).
Bununla ilgili örnek belgeler ve makaleler bulmak istiyorum.
Şimdiden teşekkürler.
Tuş kombinasyonlarını yakalamanın kolay bir yolunu bilmiyorum. 0,01 yerine 0,1 artırmak istiyorsanız, tıklamak için ikinci bir düğmeye sahip olmak daha iyi olur.
Yine de, aşağıdakileri deneyebilirsiniz:
Son olayın bir tuş vuruşu CTRL'si olup olmadığını kontrol edin.
Eğer öyleyse, bu olayın bir fare tıklaması olup olmadığını kontrol edin.
Ancak, bu yaklaşımla ilgili bazı sorunlar var:
1. Tuş vuruşu ve fare tıklaması arasında başka bir grafik olayı olursa, başarısız olur.
2. Fare tıklaması ile CTRL'yi bırakma arasındaki gecikmeden kaynaklanan bir miktar taşma elde edeceksiniz. Bunun için geçici çözümler kendi sorunlarını ortaya çıkaracaktır.
Belki başka insanların daha iyi fikirleri olacaktır.
const long &lparam,
const double &dparam,
const string &sparam)
{
static bool wasCTRL= false ;
if (wasCTRL && id== CHARTEVENT_CLICK ) Print ( "CTRL+CLICK detected" );
wasCTRL=(id== CHARTEVENT_KEYDOWN && lparam==CTRL);
}
//| keydown.mq4 |
//| Copyright 2016, Marco vd Heijden, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Marco vd Heijden, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
bool ctrl_click;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- create timer
EventSetTimer(60);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//--- destroy timer
EventKillTimer();
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer()
{
//---
}
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
if(id==CHARTEVENT_CLICK)
{
//Print("CLICK");
ctrl_click=1;
}
if(id==CHARTEVENT_KEYDOWN)
{
//Print(lparam);// print to identify keycode
if(lparam==17) // ctrl key
{
if(ctrl_click==1)// if mouse click
{
//Do Something when CTRL (keycode 17) is pressed
Print("CTRL+CLICK");
ctrl_click=0; // reset
}
}
ctrl_click=0; // reset if not ctrl
}
}
//+------------------------------------------------------------------+
Sanırım öyle.
Biraz farklı tho.