任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 76

 
lottamer:


DC是五位数...

没有DoubleToStr(YourPrice,5)是什么意思?

如果你只是在Print 或Alert(Print(doubleVariable))中的某个地方放上一个双数变量,那么将只打印四个小数位;如果你把Print(DoubleToStr(doubleVariable,N))- 程序将打印N个小数位。
 
向版主提问--很多时候,网站会把我送回来要求重新授权。当我试图登录时,显示"您的访问被暂时限制或拒绝"的信息。然后,几个小时后,恢复了访问。可能是什么问题?
 
谢谢大家的建议,但从逻辑上讲,两个选项之间没有区别......
  • for (int i=1; i<=OrdersTotal(); i++)
  • for (int i=OrdersTotal()-1; i>=0; i--)
还是我错了?顺便说一下,这并没有帮助....


奇怪的是,在这个条件下,EA完全删除了所有的订单。
  • for (int i=0; i<=OrdersTotal(); i++)
  • 对于(int i=OrdersTotal()。 i>=0; i--)
有人能理解为什么吗?

 
yosuf:
向版主提问--很多时候,网站会把我送回来要求重新授权。当我试图登录时,显示"您的访问被暂时限制或拒绝"的信息。然后,几个小时后,恢复了访问。可能是什么问题?
同态宇宙。版主不能影响授权。只是被永久禁止。
 
granit77:
同态宇宙。版主不能影响授权。只是被永久禁止。
现在该怎么做?该向谁求助?
 
yosuf:
现在该怎么做?该向谁求助?

致宇宙的主持者。
 
yosuf:
向版主提问--很多时候,网站会把我送回来要求重新授权。当我试图登录时,显示"您的访问被暂时限制或拒绝"的信息。然后,在几个小时后,恢复了访问。可能是什么问题?

你是被骗了)))。你是一个有魅力的个人))))
 

问候。

你能告诉我如何考虑到价格与指标线 交叉的情况吗?

该指标有三条线:底部、中部和顶部。

这里有一个例子。

当价格越过上线时,我需要固定这个时刻并在之后使用它,当价格低于上线并高于中线时,以及当价格低于中线时,我需要重置固定的结果。我不需要记住交叉点发生的价格,我只需要打上一个复选标记,表示交叉点发生了,然后清除它。

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

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

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

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

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

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

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

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

我试着用True和false,都没有成功,我不明白为什么。

我试过这个。

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) 

{

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

} 

为什么不呢? 帮助我理解。

 
尊敬的论坛用户,请帮助,我无法在我的EA代码中找到一个错误,即它不能或不想通过指标平仓,只能通过tp或sl,这里,在我看来,代码的一部分,与这个问题有关,提前感谢
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:

问候。

你能告诉我如何考虑到价格与指标线交叉的情况吗?

该指标有三条线:底部、中部和顶部。

下面是一个例子。

当价格越过上线时,我需要固定这个时刻并在之后使用它,当价格低于上线并高于中线时,以及当价格低于中线时,我需要重置固定的结果。我不需要记住交叉点发生的价格,我只需要打上一个复选标记,表示交叉点发生了,然后清除它。

我试着用True和false,都没有成功,我不明白为什么。

我试过这个。

为什么不呢? 帮助我理解。


这是行不通的,因为你需要把你想提交的变量带到全局层面,即在启动函数之前......例如,这些等...." FiksiruemUp = True; // commit " 和 "iksiruemUp = False; // reset"
如果你不 时间 框架之间切换 ,它应该工作