MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 996

 
Alexey Viktorov :


Yazdırmaya çalıştığınız şey doğru değil. Bu doğru.

Anladım:

42 sayısal bir kimliktir: ACCOUNT_MARGIN_FREE

onlar. sabit olarak serbest marj elde edebiliriz

 AccountInfoDouble ( ACCOUNT_MARGIN_FREE )

Veya sayısal kimliğine göre:

 AccountInfoDouble (42)

Teşekkür ederim!

 
killer67 :

Anladım:

42 sayısal bir tanımlayıcıdır: ACCOUNT_MARGIN_FREE

onlar. sabit olarak serbest marj elde edebiliriz

Veya sayısal kimliğine göre:

Teşekkür ederim!

Yazımın ilk versiyonu daha bilgilendirici.

 

https://www.mql5.com/en/docs/constants/environment_state/marketinfoconstants

Muhtemelen aptalca bir soru, ancak bu işlevleri MQL4'te kullanmak mümkün mü? Sadece MQL4 araçları daha sınırlıdır.

MQL4'te veri nasıl alınır:

SYMBOL_SESSION_DEALS

Mevcut oturumdaki anlaşma sayısı

SYMBOL_SESSION_BUY_ORDERS

Şu anda toplam satın alma siparişi sayısı

uzun

SYMBOL_SESSION_SELL_ORDERS

Şu anda toplam satış emri sayısı

uzun

SYMBOL_VOLUME

Hacim - son işlemdeki hacim

uzun

SYMBOL_VOLUMEHIGH

Günlük Maksimum Hacim

uzun

SYMBOL_VOLUMELOW

Günlük Minimum Hacim

SYMBOL_BID

Teklif - satılık en iyi teklif

çift

SYMBOL_BIDHIGH

Günlük Maksimum Teklif

çift

SYMBOL_BIDLOW

Günlük Minimum Teklif

çift

SYMBOL_ASK

Sor - en iyi satın alma teklifi

çift

SYMBOL_ASKHIGH

Günlük Maksimum Talep

çift

SYMBOL_ASKLOW

Günlük Minimum Ask

SYMBOL_SESSION_VOLUME

Mevcut oturumdaki toplam işlem hacmi

çift

SYMBOL_SESSION_TURNOVER

Mevcut oturumdaki toplam ciro

çift

SYMBOL_SESSION_INTEREST

Açık pozisyonların toplam hacmi

çift

SYMBOL_SESSION_BUY_ORDERS_VOLUME

Şu anki satın alma siparişlerinin toplam hacmi

çift

SYMBOL_SESSION_SELL_ORDERS_VOLUME

Şu anki satış emirlerinin toplam hacmi

çift

SYMBOL_SESSION_OPEN

Seans açılış fiyatı

çift

SYMBOL_SESSION_CLOSE

Seans kapanış fiyatı

çift


Evet, sadece bir depo, tek bir hareketle faydalı olabilecek verileri nasıl elde edebilirsiniz. Aynı bilgiyi MQL4'te nasıl alacağınız aşağıda açıklanmıştır. Belki birinin mantıklı bir sorusu olacaktır, yetenekleri daha geniş olduğu için neden MQL5 çalışmıyorum. Her şey basit. Tüm brokerler bunu desteklemez. Şu anda, MQL4 hala en alakalı ve talep gören.

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как...
 
Gilmor :

https://www.mql5.com/en/docs/constants/environment_state/marketinfoconstants

Muhtemelen aptalca bir soru, ancak bu işlevleri MQL4'te kullanmak mümkün mü? Sadece MQL4 araçları daha sınırlıdır.

MQL4'te veri nasıl alınır:


Evet, sadece bir depo, tek bir hareketle faydalı olabilecek verileri nasıl elde edebilirsiniz. Aynı bilgiyi MQL4'te nasıl alacağınız aşağıda açıklanmıştır. Belki birinin mantıklı bir sorusu olacaktır, yetenekleri daha geniş olduğu için neden MQL5 çalışmıyorum. Her şey basit. Tüm brokerler bunu desteklemez. Şu anda, MQL4 hala en alakalı ve talep gören.

mql4 belgelerinde, çalışmayan her şey işaretlenmiştir.

SYMBOL_BID

Teklif - satılık en iyi teklif

çift

SYMBOL_BIDHIGH

Desteklenmiyor

çift

SYMBOL_BIDLOW

Desteklenmiyor

çift

SYMBOL_ASK

Sor - en iyi satın alma teklifi

çift

SYMBOL_ASKHIGH

Desteklenmiyor

çift

SYMBOL_ASKLOW

Desteklenmiyor

çift

SYMBOL_LAST

Desteklenmiyor

çift

SYMBOL_LASTHIGH

Desteklenmiyor

çift

SYMBOL_LASTLOW

Desteklenmiyor

çift

SYMBOL_POINT

Bir noktanın değeri

çift

Bu tablonun tamamı değil. Evet ve belgelerde bunlardan birden fazla var, sadece F1'e basıp okumanız gerekiyor.

 
Alexey Viktorov :

mql4 belgelerinde, çalışmayan her şey işaretlenmiştir.

Teşekkür ederim.
 
Anlamama yardım et, durdurma kaybını doğru ayarlayamıyorum.
Günlükten satırlar:
2019.11.16 12:38:40.660 2019.01.02 02:35:00 Durakları hesaplamak için brokerden değeri alıyoruz = 30
2019.11.16 13:20:18.791 2019.01.02 02:03:00 Emir Aç: Fiyat = 1.14595, Zarar Durdur = 1.14565, Kar Al = 1.14625
2019.11.16 13:20:18.791 2019.01.02 02:03:00 1.14595 sl'de 0.01 EURUSD anında alım başarısız oldu: 1.14565 tp: 1.14625 [Geçersiz duraklar]
2019.11.16 13:20:18.792 2019.01.02 02:03:00 CTrade::OrderSend: 1.14595 sl'den 0.01 EURUSD satın al: 1.14565 tp: 1.14625 [geçersiz duraklar]


Ve şimdi bu dava için biraz açıklık:
Kodda, bir sipariş açmadan önce şunu hesaplarım:
fiyat = siparişe bağlı olarak satın alınacak en iyi piyasa fiyatı, bu durumda bir satın alma.
SL = Doğru durağı hesaplayın (broker fiyattan en az 30 birimden daha az durmaya izin verir) yani.
fiyat (1.14595) - 0.0003 = SL (1.14565)
TP = Doğru durağı hesaplayın (broker fiyattan en az 30 birimden daha az durmaya izin verir) yani.
fiyat (1.14595) + 0.0003 = TP (1.14625)
Eh, her şey yolunda gibi görünüyor, 30 puan tutuyorum ama kurulum hatası alıyorum.

SL = 0 ayarlıyoruz, sonra her şey yolunda, sipariş ve alım yapılıyor.
SL hesaplamasında bir hata çıkıyor, hata nerede?
 
killer67 :
Anlamama yardım et, durdurma kaybını doğru bir şekilde ayarlayamıyorum.
Günlükten satırlar:
2019.11.16 12:38:40.660 2019.01.02 02:35:00 Durakları hesaplamak için brokerden değeri alıyoruz = 30
2019.11.16 13:20:18.791 2019.01.02 02:03:00 Emir Aç: Fiyat = 1.14595, Zarar Durdur = 1.14565, Kar Al = 1.14625
2019.11.16 13:20:18.791 2019.01.02 02:03:00 1.14595 sl'de 0.01 EURUSD anında alım başarısız oldu: 1.14565 tp: 1.14625 [Geçersiz duraklar]
2019.11.16 13:20:18.792 2019.01.02 02:03:00 CTrade::OrderSend: 1.14595 sl'den 0.01 EURUSD satın al: 1.14565 tp: 1.14625 [geçersiz duraklar]


Ve şimdi bu dava için biraz açıklık:
Kodda, bir sipariş açmadan önce şunu hesaplarım:
fiyat = siparişe bağlı olarak satın alınacak en iyi piyasa fiyatı, bu durumda bir satın alma.
SL = Doğru durağı hesaplayın (broker fiyattan en az 30 birimden daha az durmaya izin verir) yani.
fiyat (1.14595) - 0.0003 = SL (1.14565)
TP = Doğru durağı hesaplayın (broker fiyattan en az 30 birimden daha az durmaya izin verir) yani.
fiyat (1.14595) + 0.0003 = TP (1.14625)
Eh, her şey yolunda gibi görünüyor, 30 puan tutuyorum ama kurulum hatası alıyorum.

SL = 0 ayarlıyoruz, sonra her şey yolunda, sipariş ve alım yapılıyor.
SL hesaplamasında bir hata çıkıyor, hata nerede?

ne tür fiyat?

 
Iurii Tokman :

ne tür fiyat?

Satın alırken Fiyat = SYMBOL_ASK

Satarken Fiyat = SYMBOL_BID

 
killer67 :

Satın alırken Fiyat = SYMBOL_ASK

Satarken Fiyat = SYMBOL_BID

forma eklemeyi denedin mi?

 
Iurii Tokman :

forma eklemeyi denedin mi?

Bu şekilde düzeltti:

 double CheckSetSL( ENUM_ORDER_TYPE OrderT, double price)
  {
   if (InpSL != 0 )
     {
       double CalcSL = 0.0 ;
       double SL = 0.0 ;
       if (InpSL < 0.0003 )
        {
         CalcSL = 0.0003 ; // Если SL в настройках указано меньше 30 (установки брокером) то ставим минимально допустимую.
        }
       else
        {
         CalcSL = InpSL;
        }

       // Формируем стоп-лимит.
       if (OrderT == ORDER_TYPE_BUY )
        {

         SL = SymbolInfoDouble ( _Symbol , SYMBOL_BID ) - CalcSL;

        }
       else
        {

         SL = SymbolInfoDouble ( _Symbol , SYMBOL_ASK ) + CalcSL;

        }

       return SL;
     }

   return 0.0 ;
  }
Neden: