Ich habe vor nicht allzu langer Zeit begonnen, mich mit der MQL5-Programmierung zu beschäftigen. Ich habe die Dokumentation studiert und einige Webinare auf youtube gesehen. Ich habe es geschafft, einige bescheidene Schritte zu machen :) Ich arbeite jetzt schon seit drei Tagen daran :( Ich möchte die Profis um Hilfe bitten.
Das allgemeine Konzept ist wie folgt: zuerst erhalten wir die Ask- und Bid-Preise (ich habe MqlTick und SymbolInfoTick für diesen Zweck verwendet), dann schauen wir, ob es ein offenes Geschäft gibt oder nicht (ich habe PositionsTotal für diesen Zweck verwendet), wenn es keine offenen Positionen gibt, eröffnen wir eine Position zum Ack- oder Bid-Preis entsprechend einer bestimmten Bedingung. Wenn wir nämlich einen früheren Handel zum Kauf hatten und dieser sich als positiv herausstellte (wir haben niedrig gekauft und hoch geschlossen), eröffnen wir eine neue Position zum Kauf... Das ist allgemein gehalten :) Das Problem ist, dass ich keine Informationen über die Art der letzten Transaktion erhalten kann und folglich auch nicht, zu welchem Preis sie eröffnet und zu welchem Preis sie geschlossen wurde ...
Hier ist der Code, den ich geschrieben habe:
//+------------------------------------------------------------------+//| 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);
}
Karputov Vladimir: Ich habe mich schon vor langer Zeit von Büchern in Papierform verabschiedet, ebenso wie von Piratenbüchern in elektronischer Form. Ich habe mich daran gewöhnt.
Man kann nicht schön leben.
Ich werde von Neulingen gefragt, was ich lesen soll, und ich weiß nicht mehr, was ich habe.
Ich muss aus dem Eingabefeld im EA-Fenster den vom Benutzer aus der Dropdown-Liste ausgewählten Zeitrahmen abrufen. Wie kann man sie in der Funktion verwenden, ich kämpfe schon den zweiten Tag in Folge damit, bitte beraten Sie mich)!
Hier ist ein Beispielskript, das Ihren Eintrag verwendet:
Ich danke Ihnen!
Und mehr, bitte sagen Sie mir, gibt es eine Konstruktion in MQ4 wie assoziatives Array mit Textschlüssel, zum Beispiel: Array["Hier ist der Schlüssel!"]?
Könnten Sie mir bitte auch sagen, ob MQ4 eine Konstruktion wie ein assoziatives Array mit Textschlüsseln hat, zum Beispiel: Array["Hier ist der Schlüssel!"]?
//+------------------------------------------------------------------+//| Test.mq5 |//| Copyright 2015, MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2013, MetaQuotes Software Corp."#property link"http://www.mql5.com"#property version"1.00"//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+#define Number 1//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+voidOnStart()
{
int Arr[]={ 12,15,4 };
Print(Arr[Number]);
}
//+------------------------------------------------------------------+
Können Sie bitte beraten, wie man Informationen über offene und geschlossene Geschäfte in MQL EA-Code (welcher Preis wurde geöffnet, was waren die TP und SL)? zumindest für die letzten 1.
Und gibt es eine integrierte Funktion oder Bibliothek, die ein Array mit n letzten Werten des gleitenden Durchschnitts(vorzugsweise gewichtet oder exponentiell) zurückgibt?
Können Sie bitte beraten, wie man Informationen über offene und geschlossene Geschäfte in MQL EA-Code (welcher Preis wurde geöffnet, was waren die TP und SL)? zumindest für die letzten 1.
Und gibt es eine integrierte Funktion oder Bibliothek, die ein Array mit n letzten Werten des gleitenden Durchschnitts(vorzugsweise gewichtet oder exponentiell) zurückgibt?
Bitte geben Sie immer an, auf welche Version von MQL4 oder MQL5 sich Ihre Frage bezieht.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Einen guten Tag an alle.
Ich habe vor nicht allzu langer Zeit begonnen, mich mit der MQL5-Programmierung zu beschäftigen. Ich habe die Dokumentation studiert und einige Webinare auf youtube gesehen. Ich habe es geschafft, einige bescheidene Schritte zu machen :) Ich arbeite jetzt schon seit drei Tagen daran :( Ich möchte die Profis um Hilfe bitten.
Das allgemeine Konzept ist wie folgt: zuerst erhalten wir die Ask- und Bid-Preise (ich habe MqlTick und SymbolInfoTick für diesen Zweck verwendet), dann schauen wir, ob es ein offenes Geschäft gibt oder nicht (ich habe PositionsTotal für diesen Zweck verwendet), wenn es keine offenen Positionen gibt, eröffnen wir eine Position zum Ack- oder Bid-Preis entsprechend einer bestimmten Bedingung. Wenn wir nämlich einen früheren Handel zum Kauf hatten und dieser sich als positiv herausstellte (wir haben niedrig gekauft und hoch geschlossen), eröffnen wir eine neue Position zum Kauf... Das ist allgemein gehalten :) Das Problem ist, dass ich keine Informationen über die Art der letzten Transaktion erhalten kann und folglich auch nicht, zu welchem Preis sie eröffnet und zu welchem Preis sie geschlossen wurde ...
Hier ist der Code, den ich geschrieben habe:
Vielen Dank im Voraus für Ihre Hilfe :)
Ich habe mich schon vor langer Zeit von Büchern in Papierform verabschiedet, ebenso wie von Piratenbüchern in elektronischer Form. Ich habe mich daran gewöhnt.
Man kann nicht schön leben.
Ich werde von Neulingen gefragt, was ich lesen soll, und ich weiß nicht mehr, was ich habe.
Guten Tag an alle!
Ich muss aus dem Eingabefeld im EA-Fenster den vom Benutzer aus der Dropdown-Liste ausgewählten Zeitrahmen abrufen. Wie kann man sie in der Funktion verwenden, ich kämpfe schon den zweiten Tag in Folge damit, bitte beraten Sie mich)!
Code:
Eingabe enum timeFrame {
Stunde_1 = 60,
Stunde_4 = 240,
Tag_1 = 1440,
Woche_1 = 10080!
};
iADX(currencySelect, DIES IST WIE AUSGEWÄHLTE DATEN INSTALLIEREN!, ADXparam, PRICE_CLOSE, MODE_MINUSDI,2)
Ich danke Ihnen!
Korrektes Einfügen des Codes im Forum
Hier ist ein Beispielskript, das Ihre Aufzählung anwendet:
Korrektes Einfügen des Codes im Forum
Hier ist ein Beispielskript, das Ihren Eintrag verwendet:
Ich danke Ihnen!
Und mehr, bitte sagen Sie mir, gibt es eine Konstruktion in MQ4 wie assoziatives Array mit Textschlüssel, zum Beispiel: Array["Hier ist der Schlüssel!"]?
Ich danke Ihnen!
Könnten Sie mir bitte auch sagen, ob MQ4 eine Konstruktion wie ein assoziatives Array mit Textschlüsseln hat, zum Beispiel: Array["Hier ist der Schlüssel!"]?
In Ihrem Beispiel sind die Schlüssel Zahlen, und ich meinte die Verwendung von Zeichenketten als Schlüssel.
Hallo!
Können Sie bitte beraten, wie man Informationen über offene und geschlossene Geschäfte in MQL EA-Code (welcher Preis wurde geöffnet, was waren die TP und SL)? zumindest für die letzten 1.
Und gibt es eine integrierte Funktion oder Bibliothek, die ein Array mit n letzten Werten des gleitenden Durchschnitts(vorzugsweise gewichtet oder exponentiell) zurückgibt?
Hallo!
Können Sie bitte beraten, wie man Informationen über offene und geschlossene Geschäfte in MQL EA-Code (welcher Preis wurde geöffnet, was waren die TP und SL)? zumindest für die letzten 1.
Und gibt es eine integrierte Funktion oder Bibliothek, die ein Array mit n letzten Werten des gleitenden Durchschnitts(vorzugsweise gewichtet oder exponentiell) zurückgibt?