[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 515

 
edyuson:

Ich mache dir keine Vorwürfe, es ist nicht mein Rätsel. Ich habe gerade einen ähnlichen Algorithmus gefunden, den ich brauche, und versuche, ihn zu beenden, so wie ich ihn brauche. https://www.mql5.com/ru/code/9927 Was ich entfernt habe, was ich übrig gelassen habe.

ich will es 0.01,0.01,0.01; 0.02,0.02,0.02; 0.04,0.04,0.04; 0.08,0.08,0.08......

einige tun es über ein Array
 
YOUNGA:
einige tun es über ein Array


wie diese:

double mas[3];
int q;
int w;

for (int z=OrdersHistoryTotal()-1; z>0; z--)
{
 OrderSelect(z, SELECT_BY_POS, MODE_HISTORY);
 if (OrderSymbol()==Symbol())
 {
  if (OrderProfit()>0 || q>=3) break;
  if (OrderProfit()<0)
  {
  mas[q]=OrderLots();
  q++;
  }
 }
}
if (mas[0]<0 && mas[1]<0 && mas[2]<0) w=1; //Ваше условие
 

Hallo!

Können Sie mir sagen, wie ich beim Starten eines Indikators überprüfen kann, ob ein Währungspaar verfügbar ist?

Ich habe es satt, mit diesem Em-ku-el zu kämpfen.

Hier ist der Code:

[CODE]

extern string CurrencyPair = "";
string gsSymbol, gsIndiName;

bool bIndicatorError;

...

int start() {

if (StringLen(CurrencyPair) == 0)
gsSymbol = Symbol();

else

gsSymbol = CurrencyPair;

Comment(MarketInfo(gsSymbol, MODE_TRADEALLOWED)); // ЗАКОВЫКА ЗДЕСЬ, это чудо всегда возвращает 0.0000000 при старте терминала. Если же потом открыть свойства индикатора и даже ничего не поправлять в параметрах, то возвращает 1.000000

if (!MarketInfo(gsSymbol, MODE_TRADEALLOWED)) {
Alert(gsIndiName, ": Trade is not allowed for symbol [", gsSymbol,"]");
bIndicatorError = true;
return(-1);
}

}

[CODE]

Vielleicht gibt es einen einfacheren und zuverlässigeren Weg.

Generell verstehe ich nicht, wie man Programme in einer Sprache schreiben kann, in der die Grundfunktionen funktionieren und dann doch nicht.

 
Können Sie mir sagen, ob es möglich ist, ein Skript mit anpassbaren Parametern zu erstellen? Ich glaube, ich habe irgendwo ein Skript gesehen, bei dem Sie aufgefordert werden, die Parameter einzugeben, wenn Sie es ausführen.
 
sss2019:
Können Sie mir sagen, ob es möglich ist, ein Skript mit anpassbaren Parametern zu erstellen? Ich glaube, ich habe irgendwo ein Skript gesehen, bei dem Sie aufgefordert werden, die Parameter einzugeben, wenn Sie es ausführen.
Machen Sie die externen Parameter im Skript extern
 
artmedia70:
die externen Parameter im Skript extern machen


Ich habe die Parameter

extern string StartTime = "2011.01.01";
extern string EndTime = "2011.01.25";

aber aus irgendeinem Grund zeigt das Skript ihre Einstellungen vor der Ausführung nicht an

 
Dobr:


wie diese:

double mas[3];
int q;
int w;

for (int z=OrdersHistoryTotal()-1; z>0; z--)
{
 OrderSelect(z, SELECT_BY_POS, MODE_HISTORY);
 if (OrderSymbol()==Symbol())
 {
  if (OrderProfit()>0 || q>=3) break;
  if (OrderProfit()<0)
  {
  mas[q]=OrderLots();
  q++;
  }
 }
}
if (mas[0]<0 && mas[1]<0 && mas[2]<0) w=1; //Ваше условие
0.01,0.02,0.04,0.08,0.16... Ich brauche es 0.01,0.01,0.01; 0.02,0.02,0.02; 0.04,0.04,0.04; 0.08,0.08,0.08......
 
sss2019:


Ich habe die Parameter

aber aus irgendeinem Grund zeigt das Skript ihre Einstellungen vor der Ausführung nicht an

https://docs.mql4.com/ru/basis/preprosessor/compilation
 
edyuson:
0.01, 0.02, 0.04, 0.08, 0.16... Ich brauche es 0.01,0.01,0.01; 0.02,0.02,0.02; 0.04,0.04,0.04; 0.08,0.08,0.08......


Ich schrieb BEISPIEL... ;)

Hier ist eine genauere Version:

double mas[3]={0,0,0};
int q=0;
int w=0;
int z=0;
for (z=OrdersHistoryTotal()-1;z>0; z--)
{
 OrderSelect(z, SELECT_BY_POS, MODE_HISTORY);
 if (OrderSymbol()==Symbol())
 {
  if (OrderProfit()>0 || q==3) break;
  if (OrderProfit()<0)
  {
  mas[q]=OrderLots();
  q++;
  }
 }
}
if (mas[0]==lot && mas[1]==lot && mas[2]==lot) w=1;
if (w==1) lot=OrderLots()*2;
 
ForexTader:


Im Allgemeinen verstehe ich nicht, wie man Programme in einer Sprache schreiben kann, in der die grundlegenden Funktionen funktionieren, und dann doch nicht.


Sie können versuchen, einen Teil der Schecks von init auf start zu übertragen. Sie können auch den Status des Terminals überprüfen usw.