Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1380
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich gehe davon aus, dass, wenn der aktuelle Balken einen Index mit einer eigenen Zeit hat, sich diese Kombination nie ändert.
Oder ist es möglich, dass als Ergebnis des Paging der Historie dieser Index einem historischen Balken zugewiesen wird und der aktuelle Balken einen neuen Index erhält, der um die Anzahl der ausgelagerten Balken größer ist?
Mit anderen Worten:
ist es richtig zu verstehen, dass der aktuelle Balken (Index, Preis und Zeit) erst nach einem vollständigen Austausch der Historie verfügbar wird und sich seine Parameter danach nie mehr ändern?
Bitte sagen Sie mir, wie ich die Anzahl der Zeilen in einer MySQL-Tabelle ermitteln kann
Gibt einen Fehler zurück
Letzte ID abrufen
Versuchen Sie auch dies, ich kann die Anzahl der Zeilen nicht ermitteln
Was ist los, warum kann ich keinen Wert aus der Abfrage erhalten?
Wenn ich die Abfrage mit der Datenbank abgleiche, gibt sie folgendes zurück
Rechts
int id= DatabaseRead(request);
Datenbank ist ein bool , und id ist int
Wie bekomme ich das Abfrageergebnis heraus?
Es hat funktioniert. Ich habe eine zusätzliche SQL-Klasse erstellt
Zwischen dem Entladen des Indikators und dem Aufruf von DeInit vergehen mehrere Sekunden.
Warum gibt es eine Pause und kann sie vermieden werden?
Ich verwende diesen Block, der aus der Dokumentation stammt (sowohl tp als auch sl)
//+------------------------------------------------------------------+
void Open_order_BUY()
{
double bid = SymbolInfoDouble(Symbol(),SYMBOL_BID),
ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
//--- объявление и инициализация запроса и результата
MqlTradeRequest request={};
MqlTradeResult result={};
//--- параметры запроса
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =0.01; // объем в 0.1 лот
request.type =ORDER_TYPE_BUY; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_ASK); // цена для открытия
request.sl =bid-SL*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // SL
request.tp =ask+TP*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // TP
request.deviation=5; // допустимое отклонение от цены
request.magic =EXPERT_MAGIC; // MagicNumber ордера
//--- отправка запроса
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки
//--- информация об операции
PrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
}
//+------------------------------------------------------------------+
void Open_order_SELL()
{
double bid = SymbolInfoDouble(Symbol(),SYMBOL_BID),
ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
//--- объявление и инициализация запроса и результата
MqlTradeRequest request={};
MqlTradeResult result={};
//--- параметры запроса
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =0.01; // объем в 0.2 лот
request.type =ORDER_TYPE_SELL; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_BID); // цена для открытия
request.sl =ask+SL*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // SL
request.tp =bid-TP*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // TP
request.deviation=5; // допустимое отклонение от цены
request.magic =EXPERT_MAGIC; // MagicNumber ордера
//--- отправка запроса
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки
//--- информация об операции
PrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
}
Bei jedem Tick wird ein Auftrag eröffnet. Wie kann ich erreichen, dass nur ein Auftrag offen ist?
Ich verwende diesen Block, der aus der Dokumentation stammt (sowohl tp als auch sl)
//+------------------------------------------------------------------+
void Open_order_BUY()
{
double bid = SymbolInfoDouble(Symbol(),SYMBOL_BID),
ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
//--- объявление и инициализация запроса и результата
MqlTradeRequest request={};
MqlTradeResult result={};
//--- параметры запроса
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =0.01; // объем в 0.1 лот
request.type =ORDER_TYPE_BUY; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_ASK); // цена для открытия
request.sl =bid-SL*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // SL
request.tp =ask+TP*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // TP
request.deviation=5; // допустимое отклонение от цены
request.magic =EXPERT_MAGIC; // MagicNumber ордера
//--- отправка запроса
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки
//--- информация об операции
PrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
}
//+------------------------------------------------------------------+
void Open_order_SELL()
{
double bid = SymbolInfoDouble(Symbol(),SYMBOL_BID),
ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
//--- объявление и инициализация запроса и результата
MqlTradeRequest request={};
MqlTradeResult result={};
//--- параметры запроса
request.action =TRADE_ACTION_DEAL; // тип торговой операции
request.symbol =Symbol(); // символ
request.volume =0.01; // объем в 0.2 лот
request.type =ORDER_TYPE_SELL; // тип ордера
request.price =SymbolInfoDouble(Symbol(),SYMBOL_BID); // цена для открытия
request.sl =ask+SL*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // SL
request.tp =bid-TP*SymbolInfoDouble(Symbol(),SYMBOL_POINT); // TP
request.deviation=5; // допустимое отклонение от цены
request.magic =EXPERT_MAGIC; // MagicNumber ордера
//--- отправка запроса
if(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // если отправить запрос не удалось, вывести код ошибки
//--- информация об операции
PrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
}
Gelöst.
Wie kann ich die Linie nach rechts verlängern? Weiter als die aktuelle Leiste.
Es gibt Zeit- und Preiskoordinaten. Der Preis ist klar, aber wie die Zeit zu setzen (ich versuchte iTime(Symbol(), PERIOD_CURRENT, 0), aber sein Index ist Null)
Wie kann ich die Linie nach rechts verlängern? Weiter als die aktuelle Leiste.
Es gibt Zeit- und Preiskoordinaten. Ich verstehe den Preis, aber wie setzt man die Zeit (ich habe versucht iTime(Symbol(), PERIOD_CURRENT, 0), aber sein Index ist Null)
Guten Tag.
Ich habe eine Frage:
Ich schreibe einen Indikator, der Bereiche mit dem Zeichenstil DRAW_FILLING zeichnet. Neben der gezeichneten Zone gibt es noch mehrere andere Indikatoren, darunter viele Muwings, auf dem Chart. Wenn ein Bereich gezeichnet wird, ändern die Linien der anderen Indikatoren ihre Farbe deutlich.
Die Frage: Kann man die Zonen in MT5 so zeichnen, dass sich ihre Farbe nicht überschneidet und die Farben der Linien anderer Indikatoren nicht verändert?
P.S. Ich habe alle Eigenschaften von Indikatorpuffern (Methoden wie PlotIndexSetInteger) ausgegraben, es gibt nichts Ähnliches.
P.S2. Im Anhang finden Sie einen Screenshot von MT5.
Guten Tag.
Ich habe eine Frage:
Ich schreibe einen Indikator, der Bereiche mit dem Zeichenstil DRAW_FILLING zeichnet. Neben der gezeichneten Zone gibt es noch mehrere andere Indikatoren, darunter viele Muwings, auf dem Chart. Wenn ein Bereich gezeichnet wird, ändern die Linien der anderen Indikatoren ihre Farbe deutlich.
Die Frage: Kann man die Zonen in MT5 so zeichnen, dass sich ihre Farbe nicht überschneidet und die Farben der Linien anderer Indikatoren nicht verändert?
P.S. Ich habe alle Eigenschaften von Indikatorpuffern (Methoden wie PlotIndexSetInteger) ausgegraben, es gibt nichts Ähnliches.
P.S2. Hier ist ein Screenshot von MT5.
Es kommt auf die Überlappungsreihenfolge an, wer zuletzt dran ist, ist oben
Zuerst Puffer mitDRAW_FILLING definieren