Çok uzun zaman önce MQL5 için programlama öğrenmeye başladım, belgelerle tanıştım ve YouTube'da bazı web seminerleri izledim. Birkaç mütevazı adım atmayı başardım :) ama şimdi üçüncü gündür oturduğum bir zorluk var :(
Genel konsept, önce Ask ve Bid fiyatlarını alıyoruz (bunun için MqlTick ve SymbolInfoTick kullandım), sonra açık anlaşma olup olmadığına bakıyoruz (bunun için PositionsTotal kullandım ), eğer açık pozisyon yoksa, o zaman bazı koşullara bağlı olarak Ack veya Bid fiyatlarında bir pozisyon açıyoruz. Yani, ondan önce alım için son anlaşma yapıldıysa ve olumlu çıktıysa (düşük aldık ve yüksek kapattık), o zaman alım için yeni bir pozisyon açacağız ... Bu genel anlamda :) sorun şu ki, hangisinde bir tür aşırı anlaşma olduğu ve buna bağlı olarak hangi fiyattan açılıp, ne kapandığı hakkında bilgi alamıyorum...
İşte hacklemeyi başardığım kod:
//+------------------------------------------------------------------+//| SOVETNIK_01.mq5 |//| Tokarev Sergey |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Tokarev Sergey"#property link"https://www.mql5.com"#property version"1.00"//Мои подключаемые библиотеки#include<Trade\Trade.mqh> //Библиотека для структуры "CTrade", она отвечает за выполнение всех торговых операций#include <Trade\PositionInfo.mqh> //Библиотека для структуры "CPositionInfo" она выдаёт информацию по всем нашим позициям//переменные для подключаемых классов и структур опишем тут
CTrade Trade; //Значение структуры "CTrade" поместим в переменную Trade
CPositionInfo PositionInfo; //Значение структуры "CPositionInfo" поместим в переменную PositionInfoMqlTick last_tick; //В переменной last_tick будут храниться цены последнего пришедшего тика, для этого используем структуру "MqlTick"MqlTradeRequest request;
MqlTradeResult result;
//глобальные переменныеdouble SL; //Переменная необходимая для преобразования размера StopLoss в зависимости от типа брокераdouble TP; //Переменная необходимая для преобразования размера TakeProfit в зависимости от типа брокераdouble Ask; //Переменная в которой будем хранить значения цены спросаdouble Bid; //Переменная в которой будем хранить значение цены предложенияint MagicNumber= 123456 ; //Зададим MagicNumber для идентификации своих ордеровint N; //В переменную N мы занесём кол-во открытых позиций int Lot; //Укажем размер нашего лота//+------------------------------------------------------------------+//| Инструкции которые срабатывают один раз при запуске эксперта |//+------------------------------------------------------------------+intOnInit ()
{
Trade.SetExpertMagicNumber(MagicNumber); //Занесём наш номер в переменную Trade
Lot= 1 ; //Установим размер нашего лотаreturn ( 0 );
}
//+------------------------------------------------------------------+//| Инструкции которые срабатывают один раз при остановке (закрытии) эксперта |//+------------------------------------------------------------------+voidOnDeinit ( constint reason)
{
}
//+------------------------------------------------------------------+//| Инструкции которые срабатывают при каждом новом тике цен |//+------------------------------------------------------------------+voidOnTick ()
{
SymbolInfoTick ( _Symbol ,last_tick); //Заполняем переменную last_tick последними ценами текущего символа, для этого используем "SymbolInfoTick"//Обновляем переменные Ask и Bid для дальнейшего использования
Ask=last_tick.ask;
Bid=last_tick.bid;
Print ( "Цена ПРОДАЖИ = " ,Ask);
Print ( "Цена ПОКУПКИ = " ,Bid);
//Определим существует ли открытая позиция или нет
N= PositionsTotal ();
Print ( "Кол-во открытых позиций: " ,N);
if (N== 0 )
{
//Если позиции нет то определим какая сделка была крайнейHistorySelect ( 0 , TimeCurrent ()); //Загружаем историю наших сделокulong last_deal_ticket; //Объявим переменную для тикета последней сделкиulong deals= HistoryOrdersTotal (); //Обяъвим переменную "deals" куда выгрузим количество наших сделок в целом из истории
last_deal_ticket= HistoryDealGetTicket (( int )deals- 1 ); //получим тикет крайней сделкиPrint ( "Ticket крайней сделки: " ,last_deal_ticket);
long deal_type= HistoryDealGetInteger (last_deal_ticket, DEAL_TYPE ); //Тут получить должны тип крайней сделки из историиPrint ( "Тип крайней " ,deal_type);
//Если была на продажу то покупаемif (deal_type==BUY)
{
//Открываем наш ордер на покупку
Trade.Buy(Lot, Symbol (),Ask,SL,TP);
Print ( "Мы купили по цене: " ,Ask);
}
Danışman penceresindeki giriş alanından, açılır listeden kullanıcı tarafından seçilen zaman dilimini almanız gerekir. Bir fonksiyona nasıl eklenir, arka arkaya ikinci gün acı çekiyorum, söyle bana lütfen))!
MQL EA kodunda (hangi fiyattan açıldı, TP ve SL neydi) açık ve zaten kapalı olan anlaşmalar hakkında nasıl bilgi alabileceğimi söyler misiniz? en az 1 son.
Ve hareketli ortalamanın son n değerleriyle (daha iyi ağırlıklı veya üstel) bir dizi döndürecek yerleşik bir işlev veya kitaplık var mı?
MQL EA kodunda (hangi fiyattan açıldı, TP ve SL neydi) açık ve zaten kapalı olan anlaşmalar hakkında nasıl bilgi alabileceğimi söyler misiniz? en az 1 son.
Ve hareketli ortalamanın son n değerleriyle (daha iyi ağırlıklı veya üstel) bir dizi döndürecek yerleşik bir işlev veya kitaplık var mı?
Lütfen sorunuzun hangi MQL4 veya MQL5 sürümü için olduğunu her zaman belirtin.
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
Hepinize iyi günler.
Çok uzun zaman önce MQL5 için programlama öğrenmeye başladım, belgelerle tanıştım ve YouTube'da bazı web seminerleri izledim. Birkaç mütevazı adım atmayı başardım :) ama şimdi üçüncü gündür oturduğum bir zorluk var :(
Genel konsept, önce Ask ve Bid fiyatlarını alıyoruz (bunun için MqlTick ve SymbolInfoTick kullandım), sonra açık anlaşma olup olmadığına bakıyoruz (bunun için PositionsTotal kullandım ), eğer açık pozisyon yoksa, o zaman bazı koşullara bağlı olarak Ack veya Bid fiyatlarında bir pozisyon açıyoruz. Yani, ondan önce alım için son anlaşma yapıldıysa ve olumlu çıktıysa (düşük aldık ve yüksek kapattık), o zaman alım için yeni bir pozisyon açacağız ... Bu genel anlamda :) sorun şu ki, hangisinde bir tür aşırı anlaşma olduğu ve buna bağlı olarak hangi fiyattan açılıp, ne kapandığı hakkında bilgi alamıyorum...
İşte hacklemeyi başardığım kod:
Tüm yardımlar için şimdiden çok teşekkürler :)
Uzun zamandır basılı kitaplardan ve elektronik biçimde korsanlardan uzaklaştım. Eskiden.
güzel yaşamayı yasaklayamazsın.
yeni gelenler bana ne okuyacağımı soruyorlar ama kitaplardan ne olduğunu hatırlamıyorum
Hepinize iyi günler!
Danışman penceresindeki giriş alanından, açılır listeden kullanıcı tarafından seçilen zaman dilimini almanız gerekir. Bir fonksiyona nasıl eklenir, arka arkaya ikinci gün acı çekiyorum, söyle bana lütfen))!
kod:
giriş enum timeFrame {
Saat_1 = 60,
Saat_4 = 240,
Gün_1 = 1440
Hafta_1 = 10080
};
iADX(currencySelect, SEÇİLEN VERİLERİ BURAYA GİRİN!, ADXparam, PRICE_CLOSE , MODE_MINUSDI,2)
teşekkür etmek!
Kodu foruma doğru şekilde yapıştırın
Enum'unuzu kullanan örnek bir komut dosyası:
Kodu foruma doğru şekilde yapıştırın
Enum'unuzu kullanan örnek bir komut dosyası:
Teşekkür ederim!
Yine de lütfen söyleyin bana, MQ4'te metin anahtarlı bir ilişkisel dizi gibi bir yapı var mı, örneğin: Dizi["İşte anahtar!"]?
Teşekkür ederim!
Yine de lütfen söyleyin bana, MQ4'te metin anahtarlı bir ilişkisel dizi gibi bir yapı var mı, örneğin: Dizi["İşte anahtar!"]?
Örneğinizde, anahtarlar sayılardır ve ben anahtar olarak dizeleri kullanmayı kastetmiştim.
Merhaba!
MQL EA kodunda (hangi fiyattan açıldı, TP ve SL neydi) açık ve zaten kapalı olan anlaşmalar hakkında nasıl bilgi alabileceğimi söyler misiniz? en az 1 son.
Ve hareketli ortalamanın son n değerleriyle (daha iyi ağırlıklı veya üstel) bir dizi döndürecek yerleşik bir işlev veya kitaplık var mı?
Merhaba!
MQL EA kodunda (hangi fiyattan açıldı, TP ve SL neydi) açık ve zaten kapalı olan anlaşmalar hakkında nasıl bilgi alabileceğimi söyler misiniz? en az 1 son.
Ve hareketli ortalamanın son n değerleriyle (daha iyi ağırlıklı veya üstel) bir dizi döndürecek yerleşik bir işlev veya kitaplık var mı?