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

 

下午好!你知道,只要把代码从EA的init部分剪掉,(我在周末调试它--没有滴答声!),把它移到start。删除了外部fora循环。我编译了它。

它的编码是--'继续'--'中断'或'继续'只在一些周期内使用 C:\Alpari\experts\Outputs.mq4 (69, 20)

它是关于什么的?好吧,在循环连续剧中,在循环中,那又怎样?我不太懂英语。如果我能听懂一些话,我就无法理解这些话!

 if (strela1 < strela2)
    {Sleep(600);
        if (SELL > 0) udalenie (OP_SELL);Sleep(600);
        if (BUY == 0)
        {Sleep(600);RefreshRates();
           OrderSend (Symbol( ), OP_SELL, lot, NormalizeDouble (Bid, Digits), 5 , NormalizeDouble( Ask+ (stoplos*Point),Digits),   NormalizeDouble( Ask-( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE) ;            
           int Error=GetLastError(); 
           Sleep(600);
    if (Error==129)continue;    }
    
    
    }
    else if (strela1 > strela2)
    {Sleep(600);
        if (BUY > 0) udalenie (OP_BUY);Sleep(600);
        if (SELL == 0)
        {Sleep(600); RefreshRates();
             OrderSend (Symbol( ), OP_BUY, lot,NormalizeDouble(Ask, Digits), 5, NormalizeDouble( Bid- (stoplos*Point),Digits),   NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE); 
            
           Error=GetLastError(); 
        if (Error==129)continue;  }
 
Dimka-novitsek:

下午好!你知道,只要把代码从EA的init部分剪掉,(我在周末调试它--没有滴答声!),把它移到start。删除了外部fora循环。汇编。

想出了--'继续'--'休息'或'继续'只在一些周期内使用 C:\Alpari\experts\Outputs.mq4 (69, 20)

那是什么意思?好吧,在循环中,在循环中,那又怎样?我的英语不是很好。如果我理解了一些词,我就不能把它们全部弄明白!

你没有一个循环,但你有继续运算符(它只用于循环)。
 
Lians:

请帮助使这一功能反之亦然。

也就是说,如果价格从未平仓订单中亏损了LevelProfit(你可以称之为LevelLoss),你必须将TakeProfit移至零或亏损1点2点,等等,取决于你在LevelWLoss参数中输入的内容,这样,如果价格甚至转好,就不会再有利润。或者是你有一个现成的?

提前感谢你))。

该功能可能如下。

void fMoving_TPInBU (int fi_LevelLOSS,       // уровень Лосса в пп. (для цены) - ТОЛЬКО > 0
                     int fi_LevelBU,         // уровень БУ в пп. (для тэйкпрофита) - может быть и >= 0 и < 0
                     string fs_Symbol = "",  // Symbol
                     int fi_Type = -1,       // Type
                     int gi_MG = -1)         // MagicNumber
{
    double ld_Point, ld_Price;
    int    li_Type, li_cnt, li_total = OrdersTotal();
//----
    if (li_total == 0) return;
    if (fs_Symbol == "" || fs_Symbol == "0") fs_Symbol = Symbol();
    for (int li_pos = li_total - 1; li_pos >= 0; li_pos--)
    {
        if (!OrderSelect (li_pos, SELECT_BY_POS, MODE_TRADES)) continue;
        if (OrderSymbol() != fs_Symbol) continue;
        if (gi_MG > -1) if (gi_MG != OrderMagicNumber()) continue;
        li_Type = OrderType();
        if (li_Type > 1) continue;
        if (li_Type > -1) if (li_Type != fi_Type) continue;
        RefreshRates();
        if (li_Type == 0) {li_cnt = 1; ld_Price = MarketInfo (fs_Symbol, MODE_BID);}
        else {li_cnt = -1; ld_Price = MarketInfo (fs_Symbol, MODE_ASK);}
        ld_Point = MarketInfo (OrderSymbol(), MODE_POINT);
        if (li_cnt * (OrderOpenPrice() - ld_Price) >= fi_LevelLOSS * ld_Point)
        {
            double ld_TP = NormalizeDouble (OrderOpenPrice() + li_cnt * fi_LevelBU * ld_Point, MarketInfo (fs_Symbol, MODE_DIGITS));
            //---- Проверка на "излишнюю" модификацию
            if (ld_TP - OrderTakeProfit() != 0.0)
            {OrderModify (OrderTicket(), ld_Price, OrderStopLoss(), ld_TP, 0);}
        }
    }
//----
}

在修改STOP时,不要忘记检查MODE_STOPLEVEL和MODE_FREEZELEVEL约束。

 

谢谢你!!!。让我们来看看...

怎么不呢?而如果(BUY == 0)--这不是一个循环吗?奇怪的是,我只删除了外循环,它用圆括号包围了整个程序。调试时需要它,所以我把它拿出来了。

如果不存在,就让它通过,如果(strela1 < strela2),程序的逻辑就不会被破坏。

 
Dimka-novitsek:

谢谢你!!!。让我们来看看...

怎么不呢?而如果(BUY == 0)--这不是一个循环吗?奇怪的是,我只删除了开始时包围整个程序的外循环。


不,不是一个循环。你拿出的正是本该留下的东西。阅读整个教程!特别是这里:"在条件运算符中使用复合运算符的例子。条件性的if(expression)运算符排在前面,后面是复合运算符。复合运算符包含一个可执行运算符的列表"。

 
阅读。
 
帮助!请帮助!!作为一个例子,我附上这张图片。 我不是一个程序员,这个指标以某种方式焊接,但后来遇到了一个缺乏知识和技能的人,尝试了整整一个星期,在屏幕上显示的箭头没有工作。 我将解释本质。在选定的区域,用白色的下划线,有一个明显的分歧(据我所知),这是直方图和价格线之间的差异。例如,在图中,我标记了这些地方的数字1-2-3-4。在这些地方,指标线 的数值下降模,尽管价格继续更新底部,因此我们到了第5点,在其中我们看到了价格更新的低点和收盘时的底部的基础,直方图也在增长,但线显示了下降。
附加的文件:
tjllfe2.zip  45 kb
 

TarasBY,谢谢你的解释和功能!

我把这个功能带到我的收藏中,但我不明白一些事情。

参数fi_LevelBU为负值--它转移获利,而如果它为正值,则显示获利,反之亦然?

其次:是在函数本身内检查约束还是在函数外检查约束?

 
Lians:

TarasBY,谢谢你的解释和功能!

我把这个功能带到我的收藏中,但我不明白一些事情。

如果参数fi_LevelBU为负数,意味着TP向利润的转移,而如果是正数,则意味着利润,反之亦然?

正确的(不是反过来)。

利安

第二:是在函数本身内检查约束还是在函数外检查约束?

每个人都为自己做决定。我已经创建了一个库,负责执行交易订单并检查所有的限制。

P.S. 函数代码中有一个小错误(多余的括号)--我把它修好了。

 

伙计们,建议如何解决这个问题

如果你在专家顾问中使用

while(!IsStopped())

然后由于某种原因,即使 "顾问 "按钮被释放,顾问仍继续工作。我需要禁用它,当我使用这个周期时,当EA工作时,不可能打开EA的属性,可能有人知道如何修复EA?????。我知道睡眠 的事(......)。