Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 750

 
noob1:
Hallo. Ich versuche, den StopLoss aus dem Tiefst- und Höchststand des ersten Balkens zu berechnen, nachdem ich eine schwebende Order für den Kauf bzw. Verkauf platziert habe. Aber ich habe kein Ergebnis, nur 130 Fehler, das ist alles. Ich danke Ihnen im Voraus.
Handelt es sich um dasselbe Ticket? Und der Abstand zum Stoploss ist möglicherweise zu gering.
 
simpleton:

Prüfen Sie, ob OrderOpenPrice() zu nahe an SL liegt und ob die Stops "auf der rechten Seite des Preises" liegen. Sie können hier lesen:

StopLoss- und TakeProfit-Kurse dürfen nicht zu nahe am Markt liegen. Der minimale Stop-Abstand in Pips kann mit der Funktion MarketInfo() mit dem Parameter MODE_STOPLEVEL ermittelt werden. Der Fehler 130 (ERR_INVALID_STOPS) wird bei fehlerhaften oder nicht normierten Haltestellen erzeugt.

In diesem Fall, d.h. bei einem schwebenden Auftrag, ist der "Markt" der "schwebende offene Preis".

Ich habe es neu gemacht und es scheint zu funktionieren. Ich danke Ihnen.
 
Können Sie mir sagen, wie ich die aktuelle IP-Adresse des Computers über MT herausfinden kann?
 
Heroix:
Können Sie mir sagen, wie ich die aktuelle IP-Adresse des Computers von MT erhalte?
WebRequest an http://ipecho.net/plain und Lesen aus der empfangenen Datei. Oder WinAPI.
 

ImStrategietester ist der BefehlMarketInfo(Symbol(),MODE_TICKVALUE) = 0(!) Dies geschieht in Situationen, in denen das Instrument beispielsweise EURUSD und die Ausgleichswährung RUR ist .... und in anderen Kombinationen. Nach meinem Verständnis muss die Bilanzwährung mit dem Namen der zweiten Währung im Währungspaar übereinstimmen. Andernfalls wird (im Strategietester) der Wert Null zurückgegeben, was es unmöglich macht, Tests mit den gewünschten Kombinationen durchzuführen. Wie lässt sich dieses Problem lösen?

 
ikatsko:

ImStrategietester ist der BefehlMarketInfo(Symbol(),MODE_TICKVALUE) = 0(!) Dies geschieht in Situationen, in denen das Instrument beispielsweise EURUSD und die Ausgleichswährung RUR ist .... und in anderen Kombinationen. Nach meinem Verständnis muss die Bilanzwährung mit dem Namen der zweiten Währung im Währungspaar über einstimmen. Andernfalls wird (im Strategietester) der Wert Null zurückgegeben, was es unmöglich macht, Tests mit den gewünschten Kombinationen durchzuführen. Wie lässt sich dieses Problem lösen?

Die Hervorhebung ist nicht korrekt! Ich rechne in Euro mitEURUSD, GBPUSDusw. Nur wenn es eingeschaltet ist, kann es 0 vor den ersten Daten geben, deshalb habe ich eine Bedingungvor die Berechnungen mitTICKVALUE gesetzt, dass wenn != 0;

In der Testversion funktioniertMarketInfo() möglicherweise nicht, so dass ich den ungefähren Preis eines Ticks kenne und ihn mit der Bedingung IsTesting() || IsOptimization() || IsVisualMode() festlege.

 

Bitte helfen Sie mir bei der Erstellung von Eulen, die auf zwei Paaren gleichzeitig handeln.

Beim ersten Paar wird die Variable wie folgt aussehen

double a = NormalizeDouble(iOpen(NULL,PERIOD_CURRENT, 0), Digits);

Wie wird es bei der zweiten Ausgabe sein?

Oder der Code für die Eröffnung eines Geschäfts durch das erste Zeichen lautet

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",0,0,Green);

wie der Code des zweiten Symbols aussehen wird

 
pavlicos:

Bitte helfen Sie mir bei der Erstellung von Eulen, die auf zwei Paaren gleichzeitig handeln.

Beim ersten Paar wird die Variable wie folgt aussehen

double a = NormalizeDouble(iOpen(NULL,PERIOD_CURRENT, 0), Digits);

Wie wird es bei der zweiten Ausgabe sein?

Oder der Code für die Eröffnung eines Geschäfts durch das erste Zeichen lautet

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",0,0,Green);

wie der Code des zweiten Symbols aussehen wird

NULL oderSymbol() bedeutet ein Diagrammpaar. Sie können string mySymbol = Symbol() verwenden, um zwischen ihnen zu unterscheiden, dann können Sie 2 Kopien von EA auf entsprechenden Charts verwenden und verschiedene magische Symbole zuweisen, um sicher zu gehen! Viel Glück!
 
pavlicos:

Bitte helfen Sie mir, einen Scoop zu erstellen, mit dem zwei Paare gleichzeitig gehandelt werden.

Beim ersten Paar wird die Variable wie folgt aussehen

double a = NormalizeDouble(iOpen(NULL,PERIOD_CURRENT, 0), Digits);

Wie wird es bei der zweiten Ausgabe sein?

Oder der Code für die Eröffnung eines Geschäfts durch das erste Zeichen lautet

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",0,0,Green);

wie der Code des zweiten Symbols aussehen wird

// в OnTick()
double open_nzdusd_CUR=GetNormalizeOpenPriceBySymbol("NZDUSD",Period(),0);    // цена открытия текущей свечи NZDUSD
double open_audusd_M15=GetNormalizeOpenPriceBySymbol("AUDUSD",PERIOD_M15,1);  // цена открытия прошлой свечи AUDUSD на M15
//+------------------------------------------------------------------+

// функция вне тела OnTick()
//+------------------------------------------------------------------+
double GetNormalizeOpenPriceBySymbol(string sy, int timeframe, int shift) {
   int digits=(int)SymbolInfoInteger(sy,SYMBOL_DIGITS);
   return(NormalizeDouble(iOpen(sy,timeframe,shift),digits));
}
//+------------------------------------------------------------------+

Zur Eröffnung gibt es nur das Konzept selbst:

string symbol="AUDUSD";
double ask=SymbolInfoDouble(symbol,SYMBOL_ASK);
double bid=SymbolInfoDouble(symbol,SYMBOL_BID);
double pt=SymbolInfoDouble(symbol,SYMBOL_POINT);
int spread=(int)SymbolInfoInteger(symbol,SYMBOL_SPREAD);
int digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
int value=(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL);
int level=(value==0)?spread*2:value;
//---
double sl_b=(StopLoss==0)?0:NormalizeDouble(fmin(ask-StopLoss*pt,ask-(level+1)*pt),digits);
double tp_b=(TakeProfit==0)?0:NormalizeDouble(fmax(ask+TakeProfit*pt,ask+(level+1)*pt),digits);
ticket_b=OrderSend(symbol,OP_BUY,Lots,ask,3,sl_b,tp_b,"",0,0,clrGreen);
//---
double sl_s=(StopLoss==0)?0:NormalizeDouble(fmax(bid+StopLoss*pt,bid+(level+1)*pt),digits);
double tp_s=(TakeProfit==0)?0:NormalizeDouble(fmin(bid-TakeProfit*pt,bid-(level+1)*pt),digits);
ticket_s=OrderSend(symbol,OP_SELL,Lots,bid,3,sl_s,tp_s,"",0,0,clrRed);

ohne die Rückgabecodes des Handelsservers zu überprüfen.

 
Heute hat sich der Navigator im Terminal plötzlich auf die gesamte Breite des Bildschirms ausgedehnt und die Karten verdeckt! Sie hatte immer die gleiche Breite wie die Market Watch! Ich suche und finde nicht, wie ich sie auf ihre vorherige Größe zurücksetzen kann! Hilfe, wer weiß, wie man mit diesem neuen Ärgernis umgeht! Danke!!!