[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 95

 

并检查存款是否充足? https://docs.mql4.com/ru/constants/marketinfo

并检查输出的批次?

 

这就是问题所在...手数增长到无穷大,也就是说,数量的增加是循环的,通过代码,它变成了一次性的增加...

在这之后,为了使其明确,见下文。因此,与卖出相同。

if (Total==0 && Opn_B==true)         // Открытых орд. нет  
            {                                   // критерий откр. Buy
            RefreshRates();                     // Обновление данных
                                  
            Min_Lot=MarketInfo(Symb,MODE_MINLOT);  // Миним. колич. лотов 
            Free   =AccountFreeMargin();           // Свободн средства
            One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);// Стоимость 1 лота
            Step   =MarketInfo(Symb,MODE_LOTSTEP); // Шаг изменен размера
            Lts=MathFloor(Vol);                    // Для открытия 
            Alert ("Lts ", Lts);
            if(Lts < Min_Lot) Lts=Min_Lot;         // Не меньше минимальн
            if (Lts*One_Lot < Free) Alert(" Не хватает денег на ", Lts," лотов"); // Лот дороже свободн.
            
            SL=Ask-StopLoss_Open*Point;            // Вычисление SL откр.
            TP=Ask+TakeProfit_Open*Point;          // Вычисление TP откр.
            Alert("Попытка открыть Buy. Ожидание ответа..");
            Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP); //Открытие Buy
            if (Ticket > 0)                        // Получилось :)
                {
                Alert ("Открыт ордер Buy ",Ticket);
                VKO0=Ask; Opn_B =false; KO++;
                Alert ("Цена открытия =", VKO0);
                }
             
            
            if (Fun_Error(GetLastError())==1)   // Обработка ошибок
            continue;                           // Повторная попытка
                                         
            }
 
            continue;                           // Повторная попытка

这是一个所谓的 "一次性的"?

上尉,这很明显,有一个循环。

 
sergeev,你自己可能没有想清楚......如果发生开仓错误,这是一个周期,而不是增加手数。
 

你好!

我无法找到以下问题的答案。

如果一个挂单 被执行,其类型仍与挂单的类型相同,还是改为OP_BUY或OP_SELL?

 
oDin48:

这就是问题所在...手数增长到无穷大,也就是说,数量的增加是循环的,通过代码,它变成了一次性的增加...

在这之后,为了使其明确,见下文。因此,与卖出相同。

尝试
if (Fun_Error(GetLastError())==0)   // Нет ошибки
break; 
如果出现错误,它就会尝试在新的tick上再次开仓。顺便说一下,在这个论坛上有人向我解释(第90-91页),建议不要在if中使用&&(和)运算符。
 
gogent:

如果一个挂单被执行,它还是和挂单一样,还是被改为OP_BUY或OP_SELL?

是的,当然是这样。
 

有谁知道如何将点数转换成货币?

也就是说,如果利润是以货币为单位的,那么50个点就应该换算成货币单位......也就是说,应该考虑到杠杆作用......? 0_о

 

paladin80,问题是没有打开一个订单...运作良好...我略过了这一部分,以便清楚地了解在01.05.12 19:15的帖子中哪些变量被进一步使用...

问题是这样的(见下文),这是一个一次性的执行,由于某种原因,Vol增加到无穷大,因此Lts增加到无穷大......不清楚...请看有关的帖子,告诉我有什么问题......

if ((Opn_S==true)||(Opn_B==true))               // Если есть сигнал на открытие ордера
      {                                         // Вычисляем объем умножая на VP
      if (AccountBalance()<50000) Vol=Opn_Lots*VP;
      if (AccountBalance()>50000) Vol=2*Opn_Lots*VP;
      }
 
w_ersoc:

有谁知道如何将点数转换成货币?

也就是说,如果利润是以货币为单位的,那么50个点就应该换算成货币单位......也就是说,应该考虑到杠杆作用......? 0_о


利润=lot*points*TICK_VALUE