[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 527

 
Pacman:


Soweit ich das verstanden habe, muss ich das so umschreiben:

Wieder das gleiche Problem. Wenn ich den Expert Advisor ausführe, öffnet er sofort eine SELL-Order.

Können Sie bitte erklären, warum?

Ersetzen:

  double L_1= iCustom(NULL,0,"Go_go",K,0,0);  //Линия минимума
  double L_2= iCustom(NULL,0,"Go_go",K,1,0);  //Линия максимума 

An:

  double L_1= Low[iLowest (NULL, 0, MODE_LOW, K, 1)];;    //Значение минимума
  double L_2= High[iHighest (NULL, 0, MODE_HIGH, K, 1)];;  //Значение максимума 

Und warum eine SELL-Order (in Ihrer Version) eröffnet wird (basierend auf dem, was ich vorher gesagt habe), finden Sie die Antwort selbst!!!

 

Ich setze Flaggen für die Richtung des Handels. Bedingung: Wenn er in eine Zone zwischen den Linien fällt, dann kaufen und nicht verkaufen, wenn er in eine andere Zone fällt, dann nicht kaufen und verkaufen. Ich regle diesen Prozess mit horizontalen Linien.

extern bool    Покупать  = false;
extern bool    Продавать = false; 


   if ( pcb < Ask && Ask < pl )       // Если Аск цены попал в зону между Уровнем и КлозеБай,
    {                             
     Покупать = false;                // останавливаем покупку
     Продавать = true;
    }
   if ( pl < Bid && Bid < pcs )       // Если Бид цены попал в зону между Уровнем и КлозеСелл,
    {                            
     Продавать = false;               // останавливаем продажи (контрольный флаг)
     Покупать = true;
    }
   if ( pl < Bid && Bid < pb )        // Если Бид цены попал в зону между Уровнем и Покупкой,
    {                                 // начинаем покупать
     Покупать = true;
    }
   if ( pl > Ask && Ask > ps )        // Если Аск цены попал в зону между Уровнем и Продажей,
    {                                 // начинаем продавать
     Продавать = true;             
    }

Zuvor erkundige ich mich nach den Preisen für die freiliegenden Leitungen. Und danach ein Block von Platzierungs- oder Schließungsaufträgen - je nach Flagge.

Der Code ist trivial einfach. Aber... - Frage...

Wenn diese Konstruktion zu funktionieren beginnt, sind die Kauf- und Verkaufswerte unvorhersehbar (chaotisch). Der Grund dafür ist, dass es klare Bedingungen für die Funktion "if" und die Operatoren "end" und "more/less" gibt.

Das heißt, das Programm verhält sich entsprechend seiner eigenen Gründe: Es kauft, verkauft oder tut nichts, unabhängig davon, was in den Werten der Variablen steht.


Wie und was muss ich schreiben, damit die Bedingungen funktionieren und, was am wichtigsten ist, damit sie funktionieren? Was mache ich falsch und was berücksichtige ich nicht? (Ich denke, ich habe alles, was ich brauche, in den Funktionsbedingungen erwähnt).


Es gibt noch ein weiteres Problem in diesem Bereich: Wenn sich Variablen in Abhängigkeit von den Bedingungen ändern, werden ihre Werte in den Expert Advisor-Einstellungen (beim Zugriff über F7) so übernommen, wie sie vom Benutzer eingestellt wurden. Aus diesem Grund ist es unmöglich, den aktuellen Stand dieser Variablen zu erkennen. Wie können wir es so gestalten, dass wir sehen können, welche Werte sie im Moment haben?

 
Dimka-novitsek:
Guten Morgen! Bedingung funktioniert nicht

Ich habe mir die ife-Zeichenkette bereits angeschaut, angeschaut, angeschaut, angeschaut.... Es muss einen Grund geben, vielleicht bin ich verwirrt und sehe etwas Einfaches und Elementares nicht, das kommt vor.

Ich habe am Morgen nachgesehen. Ich ging hinaus. Ich bin zurückgekommen und habe noch einmal nachgeschaut. Es ist jetzt einfacher, wenn, mehr, weniger... Das verstehe ich überhaupt nicht.



Und das ist unter meinem Start.


p.s. Das alles ist Teil dieser Strategiebedingung

EMA - Periode 10 kreuzt von oben nach unten EMA - Periode 200 , CCI kreuzt 0,100 oder 100 von oben nach unten; Kerze schließt oder liegt unter LMA - Periode 100


Setzen Sie eine Klammer, um zu zeigen, wie und was getan wird

if( CCI_50S>100&&CCI_50<100 ||CCI_50S>0&&CCI_50<0|| CCI_50S>-100&&CCI_50<-100 )CCInapravlenie=true;
 
Chiripaha:

Ich setze Flaggen für die Richtung des Handels. Bedingung: Wenn er in eine Zone zwischen den Linien fällt, dann kaufen und nicht verkaufen, wenn er in eine andere Zone fällt, dann nicht kaufen und verkaufen. Ich regle diesen Prozess mit horizontalen Linien.

Zuvor erkundige ich mich nach den Preisen für die freiliegenden Leitungen. Und danach ein Block von Platzierungs- oder Schließungsaufträgen - je nach Flagge.

Der Code ist trivial einfach. Aber... - Frage...

Wenn diese Konstruktion zu funktionieren beginnt, sind die Kauf- und Verkaufswerte unvorhersehbar (chaotisch). Der Grund dafür ist, dass es klare Bedingungen für die Funktion "if" und die Operatoren "end" und "more/less" gibt.

Das heißt, das Programm verhält sich entsprechend seiner eigenen Gründe: Es kauft oder verkauft oder tut nichts , unabhängig davon, was in den Werten der Variablen steht.

Wie und was muss ich schreiben, damit die Bedingungen funktionieren und, was am wichtigsten ist, damit sie funktionieren? Was mache ich falsch und was berücksichtige ich nicht? (Ich denke, ich habe alles, was ich brauche, in den Funktionsbedingungen erwähnt).

Es gibt noch ein weiteres Problem in diesem Bereich: Wenn sich Variablen in Abhängigkeit von den Bedingungen ändern, werden ihre Werte in den Expert Advisor-Einstellungen (beim Zugriff über F7) so übernommen, wie sie vom Benutzer eingestellt wurden. Aus diesem Grund ist es unmöglich, den aktuellen Stand dieser Variablen zu erkennen. Wie kann ich es so einrichten, dass ich sehen kann, welche Werte sie im Moment haben?

Fangen Sie damit an, die Bedingungen in Gruppen zusammenzufassen:

    extern bool    Покупать  = false;
    extern bool    Продавать = false; 

    if (pl > Ask) {if (Ask > psb || Ask > ps) Продавать = true;}
    else {if (pl < Bid) if (Bid < pcs || Bid < pb) Покупать = true;}
Vielleicht wird es so leichter zu verstehen sein! (Ich bin nicht auf die Bedeutung des Codes selbst eingegangen).
 

Auf den ersten Blick geht es wahrscheinlich um die Variablen, nicht um die Bedingungen. Ich würde damit beginnen, die Variablen mit Warnungen auszugeben, da der Code selbst NORMAL aussieht !!!

Alert(" pcb " , pcb ); Alert(" pl " , pl ); Alert(" pb " , pb );

 

Wie kann ich das Datenformat beim Schreiben in eine Datei ändern?

er schreibt in unlesbaren Schriftarten :(

 
TarasBY:

Ersetzen:

Für:

Und warum die SELL-Order öffnet (in Ihrer Variante) (basierend auf dem, was ich vorher gesagt habe) finden Sie die Antwort MICH!!!


Es stellt sich heraus, dass es nicht notwendig ist, Parameter aus dem Indikator aufzurufen. Alles kann direkt im Expert Advisor registriert werden.

Ich werde meinen Fehler analysieren.

Ich habe meinen Indikator mit den Funktionen iLowest und iHighest neu geschrieben. Ist dieser Code korrekt oder kann er gekürzt werden?

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Red

extern int Quant_Bars = 5; //количество баров

//--- buffers
double Line_1[];     //объявление массивов под..
double Line_2[];     //..буферы индикаторов

int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);    //стиль линии
   SetIndexBuffer(0,Line_1);                    //назнач. массива буферу
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);    //стиль линии
   SetIndexBuffer(1,Line_2);                    //назнач. массива буферу
//----
   return(0);                                      
  }

int start()
  {                        
   double Minimum;
   double Maximum;
   int k;
   
   Maximum= High[iHighest(NULL,0,MODE_HIGH,Quant_Bars,1)];
   Minimum= Low[iLowest(NULL,0,MODE_LOW,Quant_Bars,1)];
   
   for(k=1; k<=Quant_Bars; k++)
      {
       Line_1[k]= Minimum;
       Line_2[k]= Maximum;
      }
    return(0);
    }
               
 
Nun... Mein Bruder ist hier, der Älteste... Die Halterungen sind wahrscheinlich nur verstopft. Jetzt
 
Dimka-novitsek:

Auf den ersten Blick geht es wahrscheinlich um die Variablen, nicht um die Bedingungen. Ich würde damit beginnen, die Variablen mit Warnungen auszugeben, da der Code selbst NORMAL aussieht !!!

Alert(" pcb " , pcb ); Alert(" pl " , pl ); Alert(" pb " , pb );


Ich habe es bereits getan - alle Variablen sind korrekt: sowohl die Preise als auch die Parameter sind festgelegt.
 
TarasBY:

Fangen Sie damit an, die Bedingungen in Gruppen zusammenzufassen:

Vielleicht wird es so leichter zu verstehen sein! (Ich bin nicht auf die Bedeutung des Codes selbst eingegangen).


Wenn Sie es so einstellen, wird es eine andere Sache sein - wenn es unter der Linie ist, dann... Und ich brauche es, wenn es zwischen bestimmte Linien fällt - in den Bereich dieser Linien.

Grund der Beschwerde: