Guten Tag. Meine Frage mag vielen Leuten unglaublich dumm vorkommen, ich entschuldige mich, ich bin noch ein Anfänger in diesem Geschäft, ich kann nicht herausfinden, was falsch ist.
Ich habe eine Textdatei in MQL5\Files\date.txt erstellt und kann sie nicht öffnen. Der Fehler 5004 wird geschrieben. Bitte helfen Sie mir, wenn Sie können.
Guten Tag. Meine Frage mag vielen Leuten unglaublich dumm vorkommen, ich entschuldige mich, ich bin noch ein Anfänger in diesem Geschäft, ich kann nicht herausfinden, was falsch ist.
Ich habe eine Textdatei in MQL5\Files\date.txt erstellt und kann sie nicht öffnen. Der Fehler 5004 wird geschrieben. Bitte helfen Sie, wenn Sie können.
Wenn sich Ihre Datei nicht im gemeinsamen Ordner der MT5-Client-Terminals befindet (was in Ihrem Fall der Fall ist),
Danke für die Hilfe, aber leider hat sie nicht geholfen. Ich habe viele Varianten mit den Flaggen ausprobiert. Außerdem wird der Fehler 5004 geschrieben. Gibt es noch etwas, das ich versuchen sollte?
olegin038: Danke für die Hilfe, aber leider hat sie nicht geholfen. Ich habe viele Optionen mit den Flaggen ausprobiert. Außerdem wird der Fehler 5004 geschrieben. Gibt es noch etwas, das ich versuchen kann?
Versuchen Sie, sie einfach als Textdatei zu öffnen:
voidOnTick()
{
ResetLastError();
int Handle=FileOpen("date.txt",FILE_TXT|FILE_READ|FILE_WRITE);
if(Handle==-1)
{
Print("Файл не открыт, ошибка: ", GetLastError());
}
return;
}
Hallo zusammen, ich brauche Hilfe mit dem berühmten CrossArbitr Indikator. Der Code ist natürlich nicht von mir. Er benötigte einige Informationen, die er nicht ausgibt. Also, der Reihe nach.
Ich habe die Variablendouble n, m hinzugefügt;
"\nDifferenz BID Synthetisch und Real =", n=(CalcBid-Bid),
"\, Differenz ASK Synthetisch und Real =", m=(CalcAsk-Ask),
"\nTotal =" (m - n) <----
Es endet fluchend bei dem Minus in dieser Klammer (einige Operatot erwartet). Wer kann mir sagen, was ich falsch mache?
//+------------------------------------------------------------------+//| CrossArbitr.mq4 |//| Scriptong |//| |//+------------------------------------------------------------------+#property copyright"Scriptong"#property link""#property indicator_chart_window//---- input parametersexternbool ShowBid=false;
externbool ShowAsk=false;
externcolor BidColor = Lime;
externcolor AskColor = Yellow;
externint AlarmIfPointDifference = 10;
externstring AlarmFile = "wait.wav";
bool Activate = False;
string FP, SP;
double Tick;
int WayForCross;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init()
{
//---- indicatorsstring S = Symbol();
if(StringFind(S, "USD", 0) != -1)
{
Comment("Индикатор работает только с кроссовыми парами (GBPJPY, EURJPY, EURGBP и т. д)!");
return(0);
}
if(StringLen(S) != 6)
{
Comment("Индикатор работает только с валютными парами, у которых название состоит из шести символов!");
return(0);
}
// Поиск первой валютной пары кросса
FP = StringSubstr(S, 0, 3)+"USD";
MarketInfo(FP, MODE_BID);
if(GetLastError() > 0)
{
FP = "USD"+StringSubstr(S, 0, 3);
MarketInfo(FP, MODE_BID);
if(GetLastError() > 0)
{
Comment("Невозможно найти инструмент ", FP, " или ", StringSubstr(S, 0, 3)+"USD. Необходимо добавить его в Обзоре рынка и перезапустить индикатор.");
return(0);
}
}
// -------------------------------------- // "Создание" второй валютной пары кросса
SP = "USD"+StringSubstr(S, 3, 3);
MarketInfo(SP, MODE_BID);
if(GetLastError() > 0)
{
SP = StringSubstr(S, 3, 3)+"USD";
MarketInfo(SP, MODE_BID);
if(GetLastError() > 0)
{
Comment("Невозможно найти инструмент ", SP, " или ", StringSubstr(S, 3, 3)+"USD. Необходимо добавить его в Обзоре рынка и перезапустить индикатор.");
return(0);
}
}
// -------------------------------------- // Определение пути синтеза кроссаif (StringFind(FP, "USD") == 3 && StringFind(SP, "USD") == 0)
WayForCross = 1;
if (StringFind(FP, "USD") == 0 && StringFind(SP, "USD") == 0)
WayForCross = 2;
if (StringFind(FP, "USD") == 3 && StringFind(SP, "USD") == 3)
WayForCross = 3;
if (StringFind(FP, "USD") == 0 && StringFind(SP, "USD") == 3)
WayForCross = 4;
// -------------------------------
Tick = MarketInfo(Symbol(), MODE_TICKSIZE);
Activate = True;
//----return(0);
}
//+------------------------------------------------------------------+//| Custom indicator deinitialization function |//+------------------------------------------------------------------+int deinit()
{
//----Comment("");
if(ObjectFind("CrossBid") == 0)
ObjectDelete("CrossBid");
if(ObjectFind("CrossAsk") == 0)
ObjectDelete("CrossAsk");
//----return(0);
}
//+------------------------------------------------------------------+//| Приведение значений к точности одного тика |//+------------------------------------------------------------------+double ND(double A)
{
return(NormalizeDouble(A, Digits));
}
//+------------------------------------------------------------------+//| Расчет значения синтетического бида |//+------------------------------------------------------------------+double CalcBidWayForCross()
{
switch (WayForCross)
{
case1: return(ND(MarketInfo(FP, MODE_BID)*MarketInfo(SP, MODE_BID)));
case2: return(ND(MarketInfo(SP, MODE_BID)/MarketInfo(FP, MODE_ASK)));
case3: return(ND(MarketInfo(FP, MODE_BID)/MarketInfo(SP, MODE_ASK)));
case4: return(1/(ND(MarketInfo(FP, MODE_ASK)*MarketInfo(SP, MODE_BID))));
}
}
//+------------------------------------------------------------------+//| Расчет значения синтетического аска |//+------------------------------------------------------------------+double CalcAskWayForCross()
{
switch (WayForCross)
{
case1: return(ND(MarketInfo(FP, MODE_ASK)*MarketInfo(SP, MODE_ASK)));
case2: return(ND(MarketInfo(SP, MODE_ASK)/MarketInfo(FP, MODE_BID)));
case3: return(ND(MarketInfo(FP, MODE_ASK)/MarketInfo(SP, MODE_BID)));
case4: return(1/(ND(MarketInfo(FP, MODE_BID)*MarketInfo(SP, MODE_ASK))));
}
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+int start()
{
int counted_bars=IndicatorCounted();
//----if(!Activate)
return(0);
// Расчет синтетических Bid и Askdouble CalcBid = CalcBidWayForCross();
RefreshRates();
double CalcAsk = CalcAskWayForCross();
double n, m;
// -------------------------------// Рисуем уровень синтетического Bidif (ShowBid)
{
if(ObjectFind("CrossBid") == -1)
{
ObjectCreate("CrossBid", OBJ_HLINE, 0, 0, CalcBid);
ObjectSet("CrossBid", OBJPROP_COLOR, BidColor);
ObjectSet("CrossBid", OBJPROP_STYLE, STYLE_DOT);
}
elseif(!ObjectMove("CrossBid", 0, 1, CalcBid))
Print("Ошибка перемещения №", GetLastError());
}
// ---------------------------------- // Рисуем уровень синтетического Askif(ShowAsk)
{
if(ObjectFind("CrossAsk") == -1)
{
ObjectCreate("CrossAsk", OBJ_HLINE, 0, 0, CalcAsk);
ObjectSet("CrossAsk", OBJPROP_COLOR, AskColor);
ObjectSet("CrossAsk", OBJPROP_STYLE, STYLE_DOT);
}
elseObjectMove("CrossAsk", 0, 1, CalcAsk);
}
// ---------------------------------- Comment("Реальный BID = ", DoubleToStr(Bid, Digits), ", реальный ASK = ", DoubleToStr(Ask, Digits),
"\nСинтетик BID = ", DoubleToStr(CalcBid, Digits), ", синтетик ASK = ", DoubleToStr(CalcAsk, Digits),
"\nРазница BID Синтетика и Реального =", n=(CalcBid-Bid),
"\, Разница ASK Синтетика и Реального =", m=(CalcAsk-Ask),
"\nИтог =" (m - n)
);
// Выдаем звуковой сигнал о превышении минимальной разностиif(ND(MathAbs(CalcBid-Bid)) >= ND(AlarmIfPointDifference*Point))
PlaySound(AlarmFile);
// -------------------------------------------------------- //----return(0);
}
//+------------------------------------------------------------------+
Guten Tag. Meine Frage mag vielen Leuten unglaublich dumm vorkommen, ich entschuldige mich, ich bin noch ein Anfänger in diesem Geschäft, ich kann nicht herausfinden, was falsch ist.
Ich habe eine Textdatei in MQL5\Files\date.txt erstellt und kann sie nicht öffnen. Der Fehler 5004 wird geschrieben. Bitte helfen Sie mir, wenn Sie können.
Guten Tag. Meine Frage mag vielen Leuten unglaublich dumm vorkommen, ich entschuldige mich, ich bin noch ein Anfänger in diesem Geschäft, ich kann nicht herausfinden, was falsch ist.
Ich habe eine Textdatei in MQL5\Files\date.txt erstellt und kann sie nicht öffnen. Der Fehler 5004 wird geschrieben. Bitte helfen Sie, wenn Sie können.
Wenn sich Ihre Datei nicht im gemeinsamen Ordner der MT5-Client-Terminals befindet (was in Ihrem Fall der Fall ist),
Sie müssen das Flag FILE_COMMON entfernen:
Wenn sich Ihre Datei nicht im gemeinsamen Ordner der MT5-Client-Terminals befindet (was in Ihrem Fall der Fall ist),
Das Flag FILE_COMMON muss entfernt werden:
Danke für die Hilfe, aber leider hat sie nicht geholfen. Ich habe viele Optionen mit den Flaggen ausprobiert. Außerdem wird der Fehler 5004 geschrieben. Gibt es noch etwas, das ich versuchen kann?
Versuchen Sie, sie einfach als Textdatei zu öffnen:
Versuchen Sie, sie einfach als Textdatei zu öffnen:
Es hat auch nicht funktioniert. Ich habe noch nie mit Dateien gearbeitet. Müssen Sie hier nicht noch etwas tun?
Ja, Sie müssen darauf achten, die Datei zu schließen:
Ja, Sie müssen die Datei immer schließen:
Gemeinsame Nutzung von Kursen prominenter Autoren aus meiner persönlichen Bibliothek.
Hallo zusammen, ich brauche Hilfe mit dem berühmten CrossArbitr Indikator. Der Code ist natürlich nicht von mir. Er benötigte einige Informationen, die er nicht ausgibt. Also, der Reihe nach.
Ich habe die Variablendouble n, m hinzugefügt;
"\nDifferenz BID Synthetisch und Real =", n=(CalcBid-Bid),
"\, Differenz ASK Synthetisch und Real =", m=(CalcAsk-Ask),
"\nTotal =" (m - n) <----
Es endet fluchend bei dem Minus in dieser Klammer (einige Operatot erwartet). Wer kann mir sagen, was ich falsch mache?