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
Das MT4-Batterievolumen ist auch im Testgerät unzureichend
Können Sie mir sagen, warum es sich bei jedem Ticken öffnet?
{
Alert(Sborinfo(Magic));
if(Sborinfo(Magic)<=0)
{
MassivPrice(step);
tiket=OrderSend(Symbol(),OP_BUY,0.01,Ask,0,0,0,NULL,0,0,Blue);
if(tiket>=0)
LastPrice=Ask;
else LastPrice=-1;
}
MassivPrice(step);
tiket=OrderSend(Symbol(),OP_SELL,0.01,Bid,0,0,0,NULL,0,0,Red);
if(tiket>=0)
LastPrice=Bid;
else LastPrice=-1;
}
//+------------------------------------------------------------------+
int Sborinfo(int magic)
{
for(int i=0; i<OrdersTotal(); i++)
{
Print("колличество ордеров ",kol);
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==magic)
kol++;
}
Print("новые ордера ",kol);
return(kol);
}
Können Sie mir sagen, warum es sich bei jedem Ticken öffnet?
Weil ich immer in diesem Modus teste
{
Alert(Sborinfo(Magic));
if(Sborinfo(Magic)<=0)
{
MassivPrice(step);
tiket=OrderSend(Symbol(),OP_BUY,0.01,Ask,0,0,0,NULL,0,0,Blue);
if(tiket>=0)
LastPrice=Ask;
else LastPrice=-1;
}
MassivPrice(step);
tiket=OrderSend(Symbol(),OP_SELL,0.01,Bid,0,0,0,NULL,0,0,Red);
if(tiket>=0)
LastPrice=Bid;
else LastPrice=-1;
}
//+------------------------------------------------------------------+
int Sborinfo(int magic)
{
for(int i=0; i<OrdersTotal(); i++)
{
Print("колличество ордеров ",kol);
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==magic)
kol++;
}
Print("новые ордера ",kol);
return(kol);
}
Können Sie mir sagen, warum sie sich bei jedem Ticken öffnet?
Denn so ist der Code nun einmal geschrieben.
Einfach ausgedrückt, sieht Ihr Algorithmus folgendermaßen aus: Wenn keine Aufträge vorliegen, öffnen Sie Kaufen, und bei jedem Tick öffnen Sie Verkaufen.
Denn so ist der Code nun einmal geschrieben.
Einfach ausgedrückt sieht Ihr Algorithmus folgendermaßen aus: Wenn keine Aufträge vorliegen, eröffnen Sie einen Kaufauftrag, und bei jedem Tick eröffnen Sie einen Verkauf.
// Closse(Magic);
if(Sborinfo(Magic)==0)
{
Print("количество ордеров ",Sborinfo(Magic));
MassivPrice(step);
if(OrdersTotal()<2)// без таких условий
tiket=OrderSend(Symbol(),OP_BUY,0.01,Ask,slippage,0,0,NULL,0,0,Green);
if(tiket>=0)
LastPrice=Ask;
}
MassivPrice(step);
if(OrdersTotal()<2)// без таких условий
tiket=OrderSend(Symbol(),OP_SELL,0.01,Bid,slippage,0,0,NULL,0,0,Red);
if(tiket>=0)
LastPrice=Bid;
}
//+------------------------------------------------------------------+
int Sborinfo(int magic)
{
kol=0;
for(int i=0; i<OrdersTotal(); i++)
{
Print(" чему ровно кол " , kol );
if(OrderSelect(i,SELECT_BY_POS) && OrderMagicNumber()==magic)
{
Print(" ордера после " , kol );
// kol++;
}
}
return(kol);
}
Wie kann man den Code so ändern, dass er ohne zusätzliche Bedingungen funktioniert?
Aber das geht nicht, wenn man sowohl kaufen als auch verkaufen und ihre Zahl begrenzen muss. Nur würde ich nicht aufOrdersTotal() schauen, sondern zählen, wie viel gekauft und wie viel verkauft wurde.
Und noch einmal, warum brauchen Sie dieses "if(Sborinfo(Magic)==0)", wenn Sie dannOrdersTotal() verwenden?
Aber das geht nicht, wenn man sowohl kaufen als auch verkaufen und ihre Zahl begrenzen muss. Nur würde ich nicht aufOrdersTotal() schauen, sondern zählen, wie viel gekauft und wie viel verkauft wurde.
Und noch einmal, warum brauchen Sie dieses "if(Sborinfo(Magic)==0)", wenn Sie dannOrdersTotal() verwenden?
CloseFirst(Magic);
int b=0;
int s=0;
for(int i=0; i<=OrdersTotal(); i++)
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true && OrderMagicNumber()==Magic && OrderSymbol()==_Symbol )
{
if(OrderType()==OP_BUY)
b++;
if(OrderType()==OP_SELL)
s++;
}
if(b==0)
tiket=OrderSend(Symbol(),OP_BUY,0.01,Ask,slippage,0,0,NULL,Magic,0,Green);
if(s==0)
tiket=OrderSend(Symbol(),OP_SELL,0.01,Bid,slippage,0,0,NULL,Magic,0,Red);
}
Genossinnen und Genossen! Ich habe eine Frage.
Der Expert Advisor eröffnet die ausstehenden Aufträge um 00:00 Uhr ab Tagesbeginn auf der Grundlage der Extremwerte des Vortages.
An Wochentagen funktioniert alles einwandfrei, aber bei der Eröffnung am Montagwerden die ausstehenden Aufträge aus irgendeinem Grund nicht zu den Extremwerten des Freitags, sondern zu den Werten des Donnerstags platziert. Wie kommt das?
currtime=TimeToStr(TimeCurrent(),TIME_MINUTES);
Format=Digits();
DH=NormalizeDouble(iHigh(NULL,PERIOD_D1,1),Format) ;
DL=NormalizeDouble(iLow(NULL,PERIOD_D1,1),Format);
if (currtime==OpenTime)
{
отложки
}
Sie meinen so? Gibt es noch andere - einfachere - Möglichkeiten?
Ja, das stimmt in etwa. Wie viel einfacher ist das?
Ja, das stimmt in etwa. Wie viel einfacher könnte es sein?