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

 
再次复制。

你需要编写交易机器人的部分代码,以便在满足交易条件的情况下,它将进行一次交易。
比如说。
1) 如果线_1高于线_2,则执行买入交易。
2)交易在SL或TP时结束。
3) 如果Line_1高于Line_2,交易不会被执行,直到条件发生变化。

如果条件发生变化,即Line_2高于Line_1,交易就被执行。然后一切都会重复。
1) 如果线_2高于线_1,则执行买入交易。
2)交易在SL或TP处关闭。
3) 如果Line_2高于Line_1,则不执行交易,直到条件改变。

还有。
1) 如果Line_1高于Line_2,则执行买入交易..,
2)交易在SL或TP处关闭。
3) 如果Line_1高于Line_2,交易就不会被执行,直到条件发生变化。

等。
 
Link_x:
我再抄一遍。

你必须编写你的交易机器人的一部分代码,以便在交易条件得到满足的情况下,执行一次交易。
比如说。
1) 如果Line_1高于Line_2,则执行买入交易。
2)交易在SL或TP时结束。
3) 如果Line_1高于Line_2,交易不会被执行,直到条件改变。
...

等。


(3) 该段内容不明确。"......直到条件改变"--指的是什么条件,没有说明。

你只需要开一个买入订单吗?也不清楚市场上是否可以同时存在几个订单,还是只有一个订单。

 
fozi:

Hi camradics.

谁可以通过MT4-5交易SP500?


mmcis有一个_SP500 mt4演示

但它说贸易:不。

也许这只是在演示中,我不知道。

 
Link_x:
我再抄一遍。

你必须编写交易机器人的部分代码,因此,如果交易条件得到满足,它将进行一次交易。
比如说。
1) 如果线_1高于线_2,则执行买入交易。
2)交易在SL或TP时结束。
3) 如果Line_1高于Line_2,交易不会被执行,直到条件发生变化。

如果条件发生变化,即Line_2高于Line_1,交易就被执行。然后一切都会重复。
1) 如果线_2高于线_1,则执行买入交易。
2) 交易在SL或TP处关闭。
3) 如果Line_2高于Line_1,则不执行交易,直到条件改变。

还有。
1) 如果Line_1高于Line_2,则执行买入交易..,
2) 交易在SL或TP处关闭。
3) 如果Line_1高于Line_2,交易不会被执行,直到条件改变。

等。


我想过了,我想我明白了,但我仍然想确认我是否得到了正确的信息。

市场上永远只有一个订单。当条件发生变化时,订单总是被打开,而且总是只买。

 
khorosh:

(3) 该段内容不明确。"......直到条件改变"--指的是什么条件,没有说明。

你只需要开一个买入订单吗?也不清楚市场上是否可以同时存在几个订单,还是只有一个订单。

既买又卖。
只有一个订单。

....
 
Link_x:
既买又卖。只有一个订单。 ....



你的任务中没有提到卖出, 说了到处
 
khorosh:
你的任务没有说卖出,只说了买入。


我的错误。我会解决这个问题。:)


1) 如果线_1高于线_2,那么我们就做一个买入交易。
2) 交易在SL或TP处关闭。
3) 如果Line_1在Line_2之上,交易不会被执行,直到条件改变。

如果条件发生变化,即Line_2高于Line_1,交易就被执行。然后一切都会重复。
1) 如果线_2高于线_1,则执行卖出交易。
2)交易在止损点或止盈点关闭。
3) 如果Line_2在Line_1之上,交易不会被执行,直到条件发生变化。

还有。
1) 如果Line_1高于Line_2,则执行买入交易..,
2) 交易在SL或TP处关闭。
3) 如果Line_1在Line_2之上,交易不会被执行,直到条件改变。
 
一个直观的解释。
附加的文件:
 
Link_x:

我搞砸了。我会解决这个问题。:)


1) 如果线_1高于线_2,则执行买入交易。
2) 交易在SL或TP处关闭。
3) 如果Line_1在Line_2之上,交易不会被执行,直到条件改变。

如果条件发生变化,即Line_2高于Line_1,交易就被执行。然后一切都会重复。
1) 如果线_2比线_1高,则执行卖出交易。
2)交易在止损点或止盈点关闭。
3) 如果Line_2在Line_1之上,交易不会被执行,直到条件发生变化。

还有。
1) 如果Line_1高于Line_2,则执行买入交易..,
2) 交易在SL或TP处关闭。
3) 如果Line_1在Line_2之上,交易不会被执行,直到条件改变。

int start()
  {
//----
   
   if(Lin1>Lin2)
     {
      if(!ExistPositions("0", -1, -1, 0))
        {
         if(OrdersHistoryTotal()<1 || GetTypeLastClosePos("0", -1)==OP_SELL)
           {
            OpenPosition("0",OP_BUY,NormalizeDouble(Ask-SL*Point,Digits),
                       NormalizeDouble(Ask+TP*Point,Digits), -1);
           }
        }                         
     }
   if(Lin1<Lin2)
     {
      if(!ExistPositions("0", -1, -1, 0))
        {
         if(OrdersHistoryTotal()<1 || GetTypeLastClosePos("0", -1)==OP_BUY)
           {
            OpenPosition("0",OP_SELL,NormalizeDouble(Bid+SL*Point,Digits),
                          NormalizeDouble(Bid-TP*Point,Digits), -1);
           }
        }                         
     }  
//----
   return(0);
  }
Чтобы код работал нужно ещё записать коды всех использованных функций KimIV вне тела функции start() и
определить все значения констант и переменных ошибки по которым будут выданы при компиляции ввиду 
того что здесь они не определены..

	          
 

祝大家新年快乐!幸福、好运、爱,当然还有巨大的利润,都归功于每个人!=))


如果你是专家,请检查该函数是否有错误。这个函数的要点:它应该计算出所需的手数,以便在关闭订单网格的情况下,使下一个未平仓的订单在一定的点数内弥补其损失。

double FindRightLot (int otype)
{
  double Lot=0; double TotalLot=0;
  for (int i = OrdersTotal()-1; i>0; i--)
  {
    if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES))
    {
       if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == otype)
       {
         if (otype == OP_BUY)
         {
           Lot = NormalizeDouble ((OrderOpenPrice()-Bid)*OrderLots()/TP,2); // ТP это то к-во пунктов, за которое след. ордер должен закрыть убыток
           if (Lot>0) // т.е. нас интересуют только убыточные ордера
           {
             TotalLot=TotalLot+Lot;
           }
         }
           
       
         else if (otype == OP_SELL)
         {
           Lot = NormalizeDouble ((Ask-OrderOpenPrice())*OrderLots()/TP,2);
           if (Lot>0)// выбираем только убыточные
           {
             TotalLot=TotalLot+Lot;
           }
           
         }
       }
     }
   }
   return (TotalLot);
   
 }