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

 
Alexandr24:
Ich benötige Hilfe bei der Suche nach dem Maximalwert des Indikators N für den Vortag; ich erhalte Daten über iCustom, aber es ist ein Deadlock. Ich denke, es wird durch ArrayMaximum getan , aber wie findet man den Wert

Ich weiß nicht, wie ich iCustom dort unterbringen soll, aber mir fallen keine anderen Möglichkeiten ein.



1. Ermitteln Sie die Balkenanzahl zu Beginn des Vortages, ermitteln Sie die Balkenanzahl am Ende des Tages für.

2. Ich würde eine Schleife von einer Zahl zur anderen ziehen und das Maximum berechnen.

Sie können natürlich auch ArrayMaximum verwenden, aber erst nach dem ersten Schritt.

 
Was Proxies angeht, wenn jemand wirklich funktionierende IPs braucht, kann ich http://buy.fineproxy.org/ empfehlen, ich selbst kaufe dort seit langem Adressen, alles funktioniert perfekt und es gibt die Möglichkeit einer Testphase!
 

Entschuldigen Sie die Überschwemmung, ich werde Sie erneut fragen.

Können Sie einen kostenlosen Open-Interest-Indikator vorschlagen? Vielen Dank im Voraus!

 
GSB:

So unaufmerksam kann man keinen Code schreiben :)

Gehen Sie zu Comment("USDCADAsk = ",USDCADAsk); gefolgt von USDCADAsk = DoubleToString(MarketInfo("USDCAD",MODE_ASK),usdcaddigits); USDCADAsk ist als Double deklariert und Sie setzen einen String ein,

und dann wieder Ziffern....^) und Punkt

Sie müssen selbst nach solchen Fehlern suchen, niemand wird sie für Sie beheben, auch der Handel nicht! Der Compiler erzeugt 28 Fehler und Sie setzen die Demo in den Handel ein. Sie wünschen sich vielleicht, Sie würden echtes Geld verwenden, aber der Markt hätte Sie korrigiert!

Wem gehört das Bieten und Fordern?


Richtig


Es hat sich herausgestellt, dass Sie keine zusätzlichen Variablen verwenden müssen und dass Sie keine Normalisierung benötigen.
OrderSend("USDCAD",OP_BUY,Lot,MarketInfo("USDCAD",MODE_ASK),slip,0,0,"USDCAD",magic[0],0,Red);
 
Example2:

Es hat sich herausgestellt, dass Sie keine zusätzlichen Variablen verwenden müssen und dass Sie keine Normalisierung benötigen.

OrderSend("USDCAD",OP_BUY,Lot,MarketInfo("USDCAD",MODE_ASK),slip,0,0,"USDCAD",magic[0],0,Red);

Erstens haben Sie selbst versucht, sie auf dem Bildschirm anzuzeigen, um zu überprüfen, was zu Fehlern führte, und zweitens, ist die Normalisierung wünschenswert und die Reihenfolge der Einstellung Preis und TP, SL. Wenn der Preis nicht normalisiert ist, kann dies zu Fehlern führen. Das ist die Regel und wir sollten sie nicht brechen. Sehen Sie sich Beispiele an und analysieren Sie, warum dies der Fall ist und nicht umgekehrt, z. B. https://book. mql4.com/ru/samples/shared
 
Hallo, können Sie mir sagen, wie ich z. B. 23 % zum OrderOpenPrice hinzufügen kann? Wenn Sie wissen, dass der OrderOpenPrice bereits 77% beträgt. Ich teile durch 77, multipliziere mit 23 und erhalte 7 statt 31 Punkte. Hier ist eine Codezeile if (MarketInfo-OrderOpenPrice()>OrderOpenPrice()/50*Percent*Point). Dies ist eine Übertragung auf Breakeven, aber nicht in Punkten, sondern in Prozentpunkten. Vielen Dank im Voraus!
 
vidnab:
Hallo! Wenn es Ihnen nichts ausmacht, mir zu sagen, wie man z.B. 23% zum OrderOpenPrice hinzufügt? Wenn Sie wissen, dass der OrderOpenPrice bereits 77% beträgt. Ich teile durch 77, multipliziere mit 23 und erhalte 7 statt 31 Punkte. Hier ist eine Codezeile if (MarketInfo-OrderOpenPrice()>OrderOpenPrice()/50*Percent*Point). Dies ist eine Übertragung auf Breakeven, aber nicht in Punkten, sondern in Prozentpunkten. Vielen Dank im Voraus!


Ich habe einhunderttausend Euro zu 50 Rubel gekauft, dann habe ich 23 % auf den Kaufpreis aufgeschlagen.

In Ihrem Fall müssen Sie den Code vollständig darlegen. Wenn Sie jedoch nur 100 % erreichen wollen, teilen Sie durch 0,77.

 

Ich danke Ihnen für Ihre Antwort. Hier ist der gesamte Code

//+----------------------------------------------------------------------------+
//| e-MovingInWL2.mq4 |
//| |
//| Kim Igor V. alias KimIV |
//| http://www.kimiv.ru |
//| |
//| 27.10.2008 Der Berater setzt den Stopp auf Break-even.
//+----------------------------------------------------------------------------+
#property copyright "Kim Igor V. alias KimIV"
#property link "http://www.kimiv.ru"

//------- Externe Parameter des Expert Advisors -----------------------------------------+
externer String _P_Expert = "---------- EA-Parameter";
extern bool AllSymbols = True; // Positionen aller Symbole beobachten
extern int Magic = -1; // Positionsbezeichner
extern int LevelProfit = 25; // Gewinnhöhe in Punkten
extern int LevelWLoss = 1; // Breakeven-Level in Punkten
extern bool ShowComment = True; // Kommentar anzeigen

//------- Parameter für die Ausführung von Handelsaufträgen ------------------------------+
extern string _P_Performance = "---------- Parameter der Ausführung";
extern bool UseSound = True; // Tonsignal verwenden.
extern string SoundSuccess = "expert.wav"; // Sound des Erfolgs
extern string SoundError = "timeout.wav"; // Fehlerton.
extern inttern NumberOfTry = 2; // Anzahl der Versuche

//------- Globale Variablen des Expert Advisors -------------------------------------+
bool gbDisabled = False; // Kennzeichen für gesperrten EA
bool gbNoInit = False; // Kennzeichen für fehlgeschlagene Initialisierung
Farbe clModifyBuy = Aqua; // Farbe clModifyBuy Symbol
color clModifySell = Tomato; // Farbe des Symbols für die Verkaufsänderung

//------- Anschluss von externen Modulen -----------------------------------------+
#include <stdlib.mqh>


//+----------------------------------------------------------------------------+
//| |
//| VORDEFINIERTE FUNKTIONEN |
//| |
//+----------------------------------------------------------------------------+
//| Experten-Initialisierungsfunktion |
//+----------------------------------------------------------------------------+
void init() {
gbNoInit=False;
if (!IsTradeAllowed()) {
Message("Damit der EA korrekt funktioniert, ist es notwendig, dass er "+".
"Dem EA den Handel erlauben");
gbNoInit=True; return;
}
if (!IsLibrariesAllowed()) {
Message("Damit der EA korrekt funktioniert, sollten Sie "+" eingeben.
"Import von externen EAs zulassen");
gbNoInit=True; return;
}
if (!IsTesting()) {
if (IsExpertEnabled()) Message("Der EA wird mit dem nächsten Tick gestartet");
else Message("Die Schaltfläche \"EAs den Start erlauben{") ist freigegeben;
}
start();
}

//+----------------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion |
//+----------------------------------------------------------------------------+
void deinit() {
if (!IsTesting()) Kommentar(");
}

//+----------------------------------------------------------------------------+
//| Expertenstartfunktion |
//+----------------------------------------------------------------------------+
void start() {
wenn (gbDisabled) {
Message("Kritischer Fehler! EA STOPPED!"); return;
}
wenn (gbNoInit) {
Message("EA-Initialisierung fehlgeschlagen!"); return;
}
if (ShowComment) {
Kommentar(IIFs(AlleSymbole, "AlleSymbole ", ")
, "Magic="+IIFs(Magic<0, "Any", DoubleToStr(Magic, 0))+" "
, "LevelProfit="+DoubleToStr(LevelProfit, 0)+"n "
, "LevelWLoss="+DoubleToStr(LevelWLoss, 0)+"n "
);
} else Comment(");

string sy=IIFs(AllSymbols, "", NULL);
MovingInWL(sy, -1, Magic);
}


//+----------------------------------------------------------------------------+
//| |
//| BENUTZERFUNKTIONEN |
//| |
//+----------------------------------------------------------------------------+
//| Autor: Kim Igor V. alias KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Version : 01.09.2005 |
//| Beschreibung : Gibt den Namen der Handelsoperation zurück |
//+----------------------------------------------------------------------------+
|| Parameter: ||
//| op - Kennung des Handelsvorgangs |
//+----------------------------------------------------------------------------+
string GetNameOP(int op) {
switch (op) {
case OP_BUY : return("Kaufen");
case OP_SELL : return("Verkaufen");
case OP_BUYLIMIT : return("BuyLimit");
case OP_SELLLIMIT : return("SellLimit");
case OP_BUYSTOP : return("BuyStop");
case OP_SELLSTOP : return("SellStop");
default : return("Unbekannte Operation");
}
}

//+----------------------------------------------------------------------------+
//| Autor: Kim Igor V. alias KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Version : 18.07.2008 |
//| Beschreibung: Gibt einen von zwei Werten zurück, abhängig von der Bedingung.
//+----------------------------------------------------------------------------+
color IIFc(bool condition, color ifTrue, color ifFalse) {
if (Bedingung) return(ifTrue); else return(ifFalse);
}

//+----------------------------------------------------------------------------+
//| Autor: Kim Igor V. alias KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Version : 01.02.2008 |
//| Beschreibung: Gibt einen von zwei Werten zurück, abhängig von der Bedingung.
//+----------------------------------------------------------------------------+
string IIFs(bool Bedingung, string ifTrue, string ifFalse) {
if (Bedingung) return(ifTrue); else return(ifFalse);
}

//+----------------------------------------------------------------------------+
//| Autor: Kim Igor V. alias KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Version : 01.09.2005 |
//| Beschreibung : Anzeige einer Meldung im Kommentar und im Protokoll |
//+----------------------------------------------------------------------------+
Parameter: //|
//| m - Nachrichtentext |
//+----------------------------------------------------------------------------+
void Message(string m) {
Kommentar(m);
if (StringLen(m)>0) Print(m);
}

//+----------------------------------------------------------------------------+
//| Autor: Kim Igor V. alias KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Version : 28.11.2006 |
//| Beschreibung: Änderung eines vorgewählten Auftrags.
//+----------------------------------------------------------------------------+
//| Parameter : |
//| pp - Preisniveau der Bestellung |
//| sl - Preisniveau des Stopps |
//| tp - Preisniveau der Mitnahme |
//| ex - Verfallsdatum |
//+----------------------------------------------------------------------------+
void ModifyOrder(double pp=-1, double sl=0, double tp=0, datetime ex=0) {
bool fm;
color cl=IIFc(OrderType()==OP_BUY
|| OrderType()==OP_BUYLIMIT
|| OrderType()==OP_BUYSTOP, clModifyBuy, clModifySell);
Doppel-Op, pa, pb, os, ot;
int dg=MarketInfo(OrderSymbol(), MODE_DIGITS), er, it;

if (pp<=0) pp=OrderOpenPrice();
if (sl<0 ) sl=OrderStopLoss();
if (tp<0 ) tp=OrderTakeProfit();

pp=NormalizeDouble(pp, dg);
sl=NormalizeDouble(sl, dg);
tp=NormalizeDouble(tp, dg);
op=NormalizeDouble(OrderOpenPrice(), dg);
os=NormalizeDouble(OrderStopLoss(), dg);
ot=NormalizeDouble(OrderTakeProfit(), dg);

if (pp!=op || sl!=os || tp!=ot) {
for (it=1; it<=NumberOfTry; it++) {
if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) break;
while (!IsTradeAllowed()) Schlaf(5000);
RefreshRates();
fm=OrderModify(OrderTicket(), pp, sl, tp, ex, cl);
wenn (fm) {
if (UseSound) PlaySound(SoundSuccess); break;
} sonst {
er=GetLastError();
if (UseSound) PlaySound(SoundError);
pa=MarketInfo(OrderSymbol(), MODE_ASK);
pb=MarketInfo(OrderSymbol(), MODE_BID);
Print("Error(",er,") modifying order:",ErrorDescription(er),", try ",it);
Print("Ask=",pa," Bid=",pb," sy=",OrderSymbol(),
" op="+GetNameOP(OrderType())," pp=",pp," sl=",sl," tp=",tp);
Schlaf(1000*10);
}
}
}
}

//+----------------------------------------------------------------------------+
//| Autor: Kim Igor V. alias KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Version : 23.04.2009 |
//| Beschreibung : Stopplevel auf verlustfrei verschieben |
//+----------------------------------------------------------------------------+
Parameter: //|
//| sy - Name des Instruments ( "" - beliebiges Symbol, |
//| NULL - aktuelles Symbol) |
//| op - Operation ( -1 - beliebige Position) |
//| mn - MagicNumber ( -1 - beliebige Magie) |
//+----------------------------------------------------------------------------+
void MovingInWL(string sy="", int op=-1, int mn=-1) {
double po, pp;
int i, k=AuftragSumme();

if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
wenn ((OrderSymbol()==sy || sy==") && (op<0 || OrderType()==op)) {
if (mn<0 || OrderMagicNumber()==mn) {
po=MarketInfo(OrderSymbol(), MODE_POINT);
if (Auftragsart()==OP_BUY) {
if (OrderStopLoss()-OrderOpenPrice()<LevelWLoss*po) {
pp=MarketInfo(OrderSymbol(), MODE_BID);
wenn (pp-OrderOpenPrice()>LevelProfit*po) {
ModifyOrder(-1, OrderOpenPrice()+LevelWLoss*po, -1);
}
}
}
if (OrderType()==OP_SELL) {
if (OrderStopLoss()==0 || OrderOpenPrice()-OrderStopLoss()<LevelWLoss*po) {
pp=MarketInfo(OrderSymbol(), MODE_ASK);
wenn (OrderOpenPrice()-pp>LevelProfit*po) {
ModifyOrder(-1, OrderOpenPrice()-LevelWLoss*po, -1);
}
}
}
}
}
}
}
}
//+----------------------------------------------------------------------------+

 
Das ist der Code von Igor Kim, aber ich kann ihn nicht erreichen. Wenn Sie helfen können!
 
GSB:

Erstens haben Sie selbst versucht, sie auf dem Bildschirm anzuzeigen, um zu überprüfen, was zu Fehlern führte, und zweitens, ist die Normalisierung wünschenswert und die Reihenfolge der Einstellung Preis und TP, SL. Wenn der Preis nicht normalisiert ist, kann dies zu Fehlern führen. Das ist die Regel und wir sollten sie nicht brechen. Sehen Sie sich Beispiele an und analysieren Sie, warum dies der Fall ist und nicht umgekehrt, z. B. https://book. mql4.com/ru/samples/shared

Ich habe es nicht geschrieben, um Vorwürfe zu machen, sondern nur, damit andere es sehen. Ich danke Ihnen für Ihre Zeit.
Grund der Beschwerde: