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

 
lottamer:


DC ist fünfstellig...

Was bedeutet es OHNE DoubleToStr(YourPrice,5)? Ich habe DoubleToStr(YourPrice,5) nirgends.

Wenn Sie einfach eine Double-Variable irgendwo in Print oder Alert (Print(doubleVariable)) eingeben, werden nur vier Dezimalstellen ausgegeben; wenn Sie Print(DoubleToStr(doubleVariable,N)) - erhalten Sie N Dezimalstellen.
 
Frage an die Moderatoren - sehr oft schickt mich die Website zur erneuten Autorisierung zurück. Wenn ich versuche, mich anzumelden, wird die Meldung "Ihr Zugriff ist vorübergehend eingeschränkt oder verweigert" angezeigt. Nach ein paar Stunden wird der Zugang wiederhergestellt. Was könnte das Problem sein?
 
Vielen Dank für die Ratschläge, aber logischerweise gibt es keinen Unterschied zwischen den beiden Optionen...
  • for (int i=1; i<=OrdersTotal(); i++)
  • for (int i=OrdersTotal()-1; i>=0; i--)
Oder liege ich da falsch? Übrigens, das hat nicht geholfen....


Das Seltsame ist, dass EA unter dieser Bedingung alle Aufträge vollständig löscht:
  • for (int i=0; i<=OrdersTotal(); i++)
  • für (int i=AuftragSumme(); i>=0; i--)
Kann jemand verstehen, warum?

 
yosuf:
Frage an die Moderatoren - sehr oft schickt mich die Website zur erneuten Autorisierung zurück. Wenn ich versuche, mich anzumelden, wird die Meldung "Ihr Zugriff ist vorübergehend eingeschränkt oder verweigert" angezeigt. Nach ein paar Stunden wird der Zugang wiederhergestellt. Was könnte das Problem sein?
Das homöostatische Universum. Moderatoren können die Autorisierung nicht beeinflussen. Verbieten Sie es nur dauerhaft.
 
granit77:
Das homöostatische Universum. Moderatoren können die Autorisierung nicht beeinflussen. Nur dauerhaftes Verbot.
Was ist jetzt zu tun? An wen kann man sich wenden?
 
yosuf:
Was ist jetzt zu tun? An wen kann man sich wenden?

An den Moderator des Universums.
 
yosuf:
Frage an die Moderatoren - sehr oft schickt mich die Website zur erneuten Autorisierung zurück. Wenn ich versuche, mich anzumelden, wird die Meldung "Ihr Zugriff ist vorübergehend eingeschränkt oder verweigert" angezeigt. Nach ein paar Stunden wird der Zugang wiederhergestellt. Was könnte das Problem sein?

Sie werden getrollt))) Sie sind ein charismatischer Mensch))))
 

Grüße.

Können Sie mir sagen, wie ich eine Kurskreuzung mit einer Indikatorlinie berücksichtigen kann?

Der Indikator hat drei Linien: unten, in der Mitte und oben.

Hier ist ein Beispiel:

Wenn der Kurs die obere Linie überquert hat, muss ich diesen Moment fixieren und ihn anschließend verwenden, wenn der Kurs unter der oberen Linie und über der mittleren Linie liegt, und wenn der Kurs unter der mittleren Linie liegt, muss ich das fixierte Ergebnis zurücksetzen. Ich muss mir nicht den Preis merken, zu dem der Crossover stattgefunden hat, ich muss nur ein Häkchen setzen, um anzuzeigen, dass der Crossover stattgefunden hat, und es dann löschen.

LineUp //верхняя линия

LineS // средняя линия

LineDown // нижняя линия

Ask >  LineUp // фиксируем

Ask < LineS // сбрасываем

и так же с нижней линией

Bid < LineDown // фиксируем

Bid > LineS //  сбрасываем

Ich habe es mit True und false versucht, es hat nicht funktioniert, ich verstehe nicht warum.

Ich habe dies versucht:

double LineUp; //верхняя линия индикатора

double LineS; // средняя линия индикатора

double LineDown; // нижняя линия индикатора

bool FiksiruemUp = False;

 bool FiksiruemDown = False;

if ( Ask >  LineUp)  FiksiruemUp = True; // фиксируем

if (Ask < LineS) FiksiruemUp = False; // сбрасываем

// и так же с нижней линией

if (Bid < LineDown)  FiksiruemDown = True; // фиксируем

if (Bid > LineS)  FiksiruemDown = False; //  сбрасываем

 

// дальше в коде я к нему обращаюсь:

if ( FiksiruemUp == True) 

{

то нужно сделать это . . . . . . 

} 

und es funktioniert nicht. Warum nicht? Helfen Sie mir zu verstehen.

 
Liebe Forumsnutzer, bitte helfen Sie mir, ich kann einen Fehler im Code meines EA nicht finden, nämlich, es kann oder will nicht Positionen durch Indikator, nur durch tp oder sl zu schließen, hier, wie es mir scheint, Teil des Codes, die mit diesem Problem verbunden ist, vielen Dank im Voraus
int start()
  {
   int
   Total,                           // Количество ордеров в окне 
   Tip,                          // Тип выбран. ордера (B=0,S=1)
   Ticket;                          // Номер ордера
   double
   FT1,                              // Значение 0 буффера Forex Trend
   FT2,                             // Значение 1 буффера Forex Trend
   TL1,                              // Значение 1 буффера Trend Lord
   TL2,                              // Значение 0 буффера Trend Lord                          
   FI,                               // Значен. Force Index текущее 
   Lot,                             // Колич. лотов в выбран.ордере
   Lts,                             // Колич. лотов в открыв.ордере
   Min_Lot,                         // Минимальное количество лотов
   Step,                            // Шаг изменения размера лота
   Free,                            // Текущие свободные средства
   One_Lot,                         // Стоимость одного лота
   Price,                           // Цена выбранного ордера
   SL,                              // SL выбранного ордера 
   TP;                              // TP выбранного ордера
   bool
   Ans  =false,                     // Ответ сервера после закрытия
   Cls_B=false,                     // Критерий для закрытия  Buy
   Cls_S=false,                     // Критерий для закрытия  Sell
   Opn_B=false,                     // Критерий для открытия  Buy
   Opn_S=false;                     // Критерий для открытия  Sell
                                                        
   
//--------------------------------------------------------------- 3 --
   // Предварит.обработка
   if(Bars < Period_FI)                       // Недостаточно баров
     {
      Alert("Недостаточно баров в окне. Эксперт не работает.");
      return;                                   // Выход из start()
     }
   if(Work==false)                              // Критическая ошибка
     {
      Alert("Критическая ошибка. Эксперт не работает.");
      return;                                   // Выход из start()
     }
//--------------------------------------------------------------- 4 --
   // Учёт ордеров
   Symb=Symbol();                               // Название фин.инстр.
   Total=0;                                     // Количество ордеров
   for(int i=1; i<=OrdersTotal(); i++)          // Цикл перебора ордер
     {
      if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
        {                                       // Анализ ордеров:
         if (OrderSymbol()!=Symb)continue;      // Не наш фин. инструм
         if (OrderType()>1)                     // Попался отложенный
           {   
            Alert("Обнаружен отложенный ордер. Эксперт не работает.");
            return;                             // Выход из start()
           }
         Total++;                               // Счётчик рыночн. орд
         if (Total>1)                           // Не более одного орд
           {
            Alert("Несколько рыночных ордеров. Эксперт не работает.");
            return;                             // Выход из start()
           }
         Ticket=OrderTicket();                  // Номер выбранн. орд.
         Tip   =OrderType();                    // Тип выбранного орд.
         Price =OrderOpenPrice();               // Цена выбранн. орд.
         SL    =OrderStopLoss();                // SL выбранного орд.
         TP    =OrderTakeProfit();              // TP выбранного орд.
         Lot   =OrderLots();                    // Количество лотов
        }
     }
//--------------------------------------------------------------- 5 --
   // Торговые критерии
                          
   TL1=iCustom(NULL, 0, "TrendLord", 1, 1);                          // trend lord синий
   TL2=iCustom(NULL, 0, "TrendLord", 0, 1);                          // красный тренд лорд
   FI=iForce(NULL, 0, Period_FI,MODE_EMA,PRICE_CLOSE,0);            // FI
   FT1=iCustom(NULL, 0, "ForexTrend", 7, 50.6, 999999, 0, 1);                        // forex trend blue
   FT2=iCustom(NULL, 0, "ForexTrend", 7, 50.6, 999999, 1, 1);                        // forex trend red


   if (TL2 == EMPTY_VALUE && FT1 == 1 && FT2 == 0 && FI > 0)
   {
      Opn_B = true;
      
   
      
   }
   while (Opn_B == true)
   {
      if (FI <= 0)
      {
         Cls_B=true;
      }
  break;
   }      
      
   if (TL1 == EMPTY_VALUE && FT2 == 1 && FT1 == 0 && FI < 0)
   {
      Opn_S = true;
      
     
      
   }
   while (Opn_S == true)
   {
      if (FI >= 0)
      {
         Cls_S=true;
      }
   break;
   }    
//--------------------------------------------------------------- 6 --
   // Закрытие ордеров
   while(true)                                  // Цикл закрытия орд.
     {
      if (Tip==OP_BUY && Cls_B==true)                // Открыт ордер Buy..
        {                                       //и есть критерий закр
         Alert("Попытка закрыть Buy ",Ticket,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
         Ans=OrderClose(Ticket,Lot,Bid,2);      // Закрытие Buy
         if (Ans==true)                         // Получилось :)
           {
            Alert ("Закрыт ордер Buy ",Ticket);
            break;                              // Выход из цикла закр
           }
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }

      if (Tip==OP_SELL && Cls_S==true)                // Открыт ордер Sell..
        {                                       // и есть критерий закр
         Alert("Попытка закрыть Sell ",Ticket,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
         Ans=OrderClose(Ticket,Lot,Ask,2);      // Закрытие Sell
         if (Ans==true)                         // Получилось :)
           {
            Alert ("Закрыт ордер Sell ",Ticket);
            break;                              // Выход из цикла закр
           }
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }
      break;                                    // Выход из while
 
belck:

Grüße.

Können Sie mir sagen, wie ich eine Kurskreuzung mit einer Indikatorlinie berücksichtigen kann?

Der Indikator hat drei Linien: unten, in der Mitte und oben.

Hier ist ein Beispiel:

Wenn der Kurs die obere Linie überquert hat, muss ich diesen Moment fixieren und ihn anschließend verwenden, wenn der Kurs unter der oberen Linie und über der mittleren Linie liegt, und wenn der Kurs unter der mittleren Linie liegt, muss ich das fixierte Ergebnis zurücksetzen. Ich muss mir nicht den Preis merken, zu dem der Crossover stattgefunden hat, ich muss nur ein Häkchen setzen, um anzuzeigen, dass der Crossover stattgefunden hat, und es dann löschen.

Ich habe es mit True und false versucht, es hat nicht funktioniert, ich verstehe nicht warum.

Ich habe dies versucht:

und es funktioniert nicht. Warum nicht? Helfen Sie mir zu verstehen.


Es funktioniert nicht, weil Sie die Variablen, die Sie festschreiben wollen, auf die globale Ebene bringen müssen , d.h. vor der Funktion Start... Zum Beispiel diese und so weiter.... " FiksiruemUp = True; // commit " und "iksiruemUp = False; // reset"
Wenn Sie nicht zwischen Zeitrahmenwechseln , sollte es funktionieren...