Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 679
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 schreibe einen Roboter, der Ctrade verbindet. Zuerst möchte ich mit einer Logik beginnen, bei der er zu Beginn jeder Stunde ein Kaufgeschäft zum Marktpreis tätigt und nach einer halben Stunde alles zu einem neuen Marktpreis verkauft. Wenn ich es im Tester teste, erhalte ich die Fehlermeldung Ungültiger Auftragstyp.
Mein Instrument ist SBER, mein Kunde ist Otkritie. Meine Bestellung ist im manuellen Modus, meine Bestellung wird weder im Real- noch im Demokonto weitergeleitet.
Worin könnte der Fehler liegen? Stimmt es, dass an der Börse nicht zum Marktpreis gehandelt werden darf?
Ich schreibe einen Roboter, der Ctrade verbindet. Zuerst möchte ich mit einer Logik beginnen, bei der er zu Beginn jeder Stunde ein Kaufgeschäft zum Marktpreis tätigt und nach einer halben Stunde alles zu einem neuen Marktpreis verkauft. Wenn ich es im Tester teste, erhalte ich die Fehlermeldung Ungültiger Auftragstyp.
Mein Instrument ist SBER, mein Kunde ist Otkritie. Meine Bestellung ist im manuellen Modus, meine Bestellung wird weder im Real- noch im Demokonto weitergeleitet.
Worin könnte der Fehler liegen? Stimmt es, dass an der Börse nicht zum Marktpreis gehandelt werden darf?
Guten Tag, wenn der EA auf einem Laptop läuft und dieser in den Ruhezustand gegangen ist, funktioniert dann der verbundene EA?
Und Sie werden den Ausdruck in das Protokoll aller Werte aufnehmen und herausfinden. Wenn sie nicht gedruckt wird, funktioniert sie nicht.
Guten Tag, wenn der EA auf einem Laptop läuft und dieser in den Schlafmodus gegangen ist, funktioniert dann der angeschlossene EA?
Der Ruhezustand ist normalerweise derjenige, der das Laufwerk herunterfährt,
Ich habe kürzlich einen Server installiert, und erst am dritten Tag habe ich gesehen, dass der Computer schlief, d.h. nicht funktionierte, d.h. alle EAs funktionierten nicht,
Ich habe den Ruhezustand deaktiviert und alles ist in Ordnung.
Das ist klar ... Ich habe mich gefragt, ob jemand seine Erfahrungen mit einem Neuling teilen kann.
Hallo, wenn der Advisor auf einem Laptop läuft und dieser sich im Ruhezustand befindet, funktioniert dann der angeschlossene Advisor?
Nein. Es wird nicht funktionieren. Stellen Sie in den Energieeinstellungen die Stromversorgung ein:
Ohne Ihren Code ist es schwer zu verstehen, was Sie geschrieben haben und warum es nicht funktioniert.
//| Gear.mq5 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#include <Trade/Trade.mqh>
CTrade trade;
bool TimeFlag, FLG;
int TimeScale=50, TimeInMemory, TimeNow;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---Блок получения информации с биржи
MqlTick oCurrentTick;
SymbolInfoTick(Symbol(), oCurrentTick);
//---Блок определения начала нового временного интервала
TimeFlag=false;
datetime tm=TimeCurrent();
MqlDateTime stm;
TimeToStruct(tm,stm);
if(MathMod(StringToInteger((string)stm.min),TimeScale)==0)
{
TimeNow=StringToInteger((string)stm.min);
}
if(TimeNow != TimeInMemory)
{
TimeInMemory=TimeNow;
TimeFlag=true;
//Print(_Symbol);
}
if(TimeFlag)
{
if(FLG)
{
if(!trade.Buy(1,_Symbol))
{
//--- сообщим о неудаче
Print("Метод Buy() потерпел неудачу. Код возврата=",trade.ResultRetcode(),
". Описание кода: ",trade.ResultRetcodeDescription());
}
else
{
Print("Метод Buy() выполнен успешно. Код возврата=",trade.ResultRetcode(),
" (",trade.ResultRetcodeDescription(),")");
}
FLG=false;
}
else
{
trade.Sell(1);
FLG=true;
}
}
}
//+------------------------------------------------------------------+
Das ist nicht der richtige Weg:
int TimeScale=50,TimeInMemory,TimeNow;
oder besser gesagt, nach einer solchen Deklaration müssen Sie diese Variablen in OnInit() explizit initialisieren(ihnen Werte zuweisen).
Die Sell-Methode muss ebenfalls von Prüfungen umgeben sein, wie z. B.
" (",trade.ResultRetcodeDescription(),")");
Und es kann auch einen Haken geben - morgens, bei der Eröffnung des Handels, beginnt die Auktion nicht sofort, nicht von der ersten Sekunde an - dann sind Fehler möglich.