追踪止损和追踪利润 - 页 3

 
deVries:


谢谢你的改正。

如果我们使用的是count=count-1;那么就没有必要使用'for'循环,我在前两篇文章中就想把它清除掉。

有时候,这也是值得一试的。就像刚才,我自己修正了一些错误,这让我感到非常高兴

再次感谢。到目前为止,"盈利"部分正在按预期工作。

 
Arav007:


谢谢你的更正。

如果我们使用count=count-1;那么就没有必要使用'for'循环,我在前两篇文章中就试图清除这个循环。

有时候,这也是值得一试的。就像刚才,我自己修正了一些错误,这让我感到非常高兴

再次感谢。到目前为止,"盈利 "部分正在按预期工作。


继续测试和阅读你看到的代码,你会学到很多东西。

你可以为自己做很多的学习

如果你尝试去理解和探索这些东西

在你自己的 "模拟 "测试账户上进行测试和创建。

 
deVries:


继续测试和阅读你看到的代码,你会学到很多。

你可以为自己做很多的学习

如果你试着去理解和探索这些东西

测试并在你自己的 "演示 "测试账户上创建它。


是的,我正在努力理解我所要表达的意思。

现在对于" 跟踪止损 "部分,我有一些想法。

启动 "追踪止损 "循环的条件是什么?

如果(OrdersTotal()>0){

for(cnt=OrdersTotal()-1;cnt>=0;cnt--)

{

追踪止损。

}

}

现在我在想,这个循环的运行次数将与总开仓订单的数量相同。而我的目标是 "不跟踪 "最后/第三笔订单的止损。

因此,如果我在 "第二 "个订单时停止循环,会是怎样的呢?

for(cnt=OrdersTotal()-1;cnt>0;cnt-)

 
Arav007:


是的,我正在努力理解我所要表达的意思。

现在,对于 "跟踪止损 "部分,我有一些想法。

启动 "追踪止损 "循环的条件是什么?

如果(OrdersTotal()>0){

for(cnt=OrdersTotal()-1;cnt>=0;cnt--)

{

追踪止损。

}

}

现在我在想,这个循环的运行次数将与总开仓订单的数量相同。而我的目标是 "不跟踪 "最后/第三笔订单的止损。

因此,如果我在 "第二 "个订单时停止循环,会是怎样的呢?

for(cnt=OrdersTotal()-1;cnt>0;cnt-)


找到正确的符号和正确的魔法数字

那么这就是你的EA的交易,现在检查 Bid/Ask是否离订单openprice()有xx个点。

在这里做一些搜索,你会发现你可以使用的例子

 
deVries:


找到正确的符号和正确的魔法数字

那么这就是你的EA的交易,现在检查买入价/卖出价是否离订单开价()有XX个点。

在这里做一些搜索,你会发现你可以使用的例子。


我有检查和条件部分。

 if(OrdersTotal()>0){



        for(cnt=OrdersTotal()-1;cnt>=0;cnt--){

        

        if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) continue;

        if(OrderSymbol() == Symbol() && OrderMagicNumber() ==  MagicNumber){

sl     = OrderStopLoss(); // Stop Loss. 

                tStopLoss = NormalizeDouble(OrderStopLoss(), Digits); // Stop Loss. 

                

                if(OrderType()==OP_BUY){

                

                        if(Ask> NormalizeDouble(OrderOpenPrice()+TrailingStart* vPoint,Digits)

                        && tStopLoss < NormalizeDouble(Bid-(TrailingStop+TrailingStep)*vPoint,Digits)){

 tStopLoss = NormalizeDouble(Bid-TrailingStop*vPoint,Digits); 

}

}

但在这里我不明白如何区分交易。追踪止损 "功能 是在程序开始时调用的。

 

*在达到一定的利润限制后,例如10点,止损 将移动到5点。现在,如果该交易回撤到5点,那么该交易的 "三分之二 "将被关闭。

*剩余的 "三分之一 "将继续运行,"追踪止损 "不会被应用到它。

你有三笔交易,你想如何处理这三笔交易?

这样它就会像你想的那样做吗?

或者在获得一定的利润后,必须修改哪一个?

 
deVries:

*在达到一定的利润限制后,例如10点,止损将移动到5点。现在,如果该交易回撤到5点,那么该交易的 "三分之二 "将被关闭。

*剩余的 "三分之一 "将继续运行,"追踪止损 "不会被应用到它。

你有三笔交易,你想如何处理这三笔交易?

这样它就会像你想的那样做吗?

或者在获得一定的利润后,必须修改哪一个?


为了简化问题,我决定采用同一批次的 "三笔 "独立交易,因此如果其中两笔交易被关闭,总交易(批次)的 "三分之二 "将被关闭。

剩下的交易(三分之一)将继续运行,即 "追踪止损 "不会被应用到它。

前两笔交易的止损 将被移动到一定的利润点,但对于第三笔交易,它不会移动。

 
Arav007:


为了简化问题,我决定采用同一批次的 "三笔 "独立交易,因此,如果其中两笔交易被关闭,总交易(批次)的 "三分之二 "将被关闭。

剩下的交易(三分之一)将继续运行,即 "追踪止损 "不会被应用于它。

前两笔交易的止损将被移动到一定的利润点上,但第三笔交易的止损不会移动。


你必须使用一些函数来正确地进行修改

在这个时候,你必须检查一些方法来选择你要修改的交易

查看这里的功能 交易功能,看看你是否可以选择交易1。

 
deVries:


你必须使用一些功能来完成修改。

此刻,你必须检查一下选择交易的方法,你必须进行修改

检查这里的功能 交易功能,看看你是否可以选择交易1


索引号能否与票号进行比较?

   if (count==3) 

    {

  SellOrder_1=OrderSend(Symbol() , iOrderType_Sell , LotSize,OpenPrice,Slippage ,dStopLossPrice ,dTakeProfitPrice_1 , "Sell Order",MagicNumber , 0,Red);

                

    if (SellOrder_1>0) //Checking if the order was opened or not

      { 

      sLog_CheckBuyConditions = sLog_CheckBuyConditions + sNL + "    Sell order 1 sent successfully. Ticket=" + SellOrder_1;

      Sell_Order_Ticket_1=SellOrder_1;

      count = count - 1; 

      }

     else {

          iLastError = GetLastError();                               

          sLog_CheckBuyConditions = sLog_CheckBuyConditions + sNL + "    Error sending sell order 1. Error code=" + ErrorDescription(iLastError);



} 

} 

//Trailing Stop Function 

if(OrdersTotal()>0){

//

        for(cnt=OrdersTotal()-1;cnt>=0;cnt--){

        

        if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) continue;

        if(OrderSymbol() == Symbol() && OrderMagicNumber() ==  MagicNumber){

                sl     = OrderStopLoss(); // Stop Loss. 

                tStopLoss = NormalizeDouble(OrderStopLoss(), Digits); // Stop Loss. 

                

                if(OrderType()==OP_BUY){

if (cnt==Sell_Order_Ticket_1){

Proceed to Next 

} 

请参考上面的色块部分。

谢谢

 
Arav007:


索引号可以和票号比较吗?

请参考上面的色块部分。

谢谢


for(cnt=OrdersTotal()-1;cnt>=0;cnt--){

您的订单总数为3个交易

这样做

//for(cnt=OrdersTotal()-1;cnt>=0;cnt--){

for(cnt= 3 -1;cnt>=0;cnt--)
   {
   Print ("cnt =  ",cnt);
   }

如果你打开终端并查看专家,你会看到什么?

Sell_Order_Ticket_1的值 是否与cnt相同

如果是,你能证明给我看吗,它是...

如果不是,为什么不是呢?