無爲编程破译 发表于 2023-5-25 08:57:19

破位开仓和破位平仓

最后由 wuwei 于 2023-5-25 08:58 编辑

破位开仓和破位平仓
<b>//11破位开仓

void po_open()

{

   G_po_open = GlobalVariableGet("G_po_open");

   if(!G_po_open)

      return;

   double ask = SymbolInfoDouble(Symbol(), SYMBOL_ASK);

   double bid = SymbolInfoDouble(Symbol(), SYMBOL_BID);

   if(bid > iHigh(Symbol(), PERIOD_M1, 1))

   {

      //准备开多单

      int ticket = OrderSend(Symbol(), OP_BUY, lots, ask, Slippage, 0, 0);

      if(ticket < 0)

         Print("破位开多失败! ", error());

      else

      {

         G_po_open = false;

         GlobalVariableSet("G_po_open", G_po_open);

         SetRed(G_po_open, "破位开仓");

      }

   }

   if(bid < iLow(Symbol(), PERIOD_M1, 1))

   {

      //准备开空单

      int ticket = OrderSend(Symbol(), OP_SELL, lots, bid, Slippage, 0, 0);

      if(ticket < 0)

         Print("破位开空失败! ", error());

      else

      {

         G_po_open = false;

         GlobalVariableSet("G_po_open", G_po_open);

         SetRed(G_po_open, "破位开仓");

      }

   }

}

//11破位平仓

void po_close()

{

   G_po_close = GlobalVariableGet("G_po_close");

   if(!G_po_close)

      return;

   int iOrders = OrdersTotal(), i;//订单序号是从0开始,订单总数是1开始。所以要减1

   for(i = iOrders - 1; i >= 0; i--)

   {

      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

      {

         if(OrderSymbol() != Symbol())

            continue;

         double ask = SymbolInfoDouble(OrderSymbol(), SYMBOL_ASK);

         double bid = SymbolInfoDouble(OrderSymbol(), SYMBOL_BID);

         if(OrderType() == OP_SELL)

         {

            if(bid > iHigh(OrderSymbol(), PERIOD_M1, 1))

            {

               if(!OrderClose(OrderTicket(), OrderLots(), ask, Slippage))//平仓 OrderType()0=买 1 =卖

                  Print(OrderTicket(), error());

               else

               {

                  G_po_close = false;

                  GlobalVariableSet("G_po_close", G_po_close);

                  SetRed(G_po_close, "破位平仓");

               }

            }

         }

         if(OrderType() == OP_BUY)

         {

            if(bid < iLow(OrderSymbol(), PERIOD_M1, 1))

            {

               if(!OrderClose(OrderTicket(), OrderLots(), bid, Slippage))//平仓 OrderType()0=买 1 =卖

                  Print(OrderTicket(), error());

               else

               {

                  G_po_close = false;

                  GlobalVariableSet("G_po_close", G_po_close);

                  SetRed(G_po_close, "破位平仓");

               }

            }

         }

         else

            error();

      }

   }

}</b>

daerwushen 发表于 2023-5-26 22:28:55

啥意思啊

tststs 发表于 2023-5-26 23:04:28

学习了啊

無爲编程破译 发表于 2023-5-27 07:17:23

tststs 发表于 2023-5-26 23:04
学习了啊

学无止境

無爲编程破译 发表于 2023-5-27 07:17:41

daerwushen 发表于 2023-5-26 22:28
啥意思啊

多学学编程知识

fdc 发表于 2023-5-27 16:22:34

多学学编程

無爲编程破译 发表于 2023-5-27 17:32:30

fdc 发表于 2023-5-27 16:22
多学学编程

希望学习进步,变成越来越优秀的人

aliang9887 发表于 2023-6-3 17:52:30

在这里真的可以学到很多

無爲编程破译 发表于 2023-6-3 21:16:21

aliang9887 发表于 2023-6-3 17:52
在这里真的可以学到很多

日后更多学习内容发布

無爲编程破译 发表于 2023-6-7 15:47:16

xinhua123 发表于 2023-6-7 13:39
感谢分享[咖啡]

谢谢你的评论[玫瑰]

umi0665 发表于 2023-6-8 21:20:31

學習學習[微笑]

無爲编程破译 发表于 2023-6-8 21:25:16

umi0665 发表于 2023-6-8 21:20
學習學習[微笑]

学习使人进步

Mike 发表于 2023-6-10 14:58:51

好好学习,这个很好啊

無爲编程破译 发表于 2023-6-10 15:00:43

Mike 发表于 2023-6-10 14:58
好好学习,这个很好啊

确实很好

無爲编程破译 发表于 2023-6-12 17:36:44

david6843 发表于 2023-6-12 12:50
开仓和破位平仓

很好用的函数

lileialt 发表于 2023-6-13 19:00:22

学习 谢谢

無爲编程破译 发表于 2023-6-13 23:57:38

lileialt 发表于 2023-6-13 19:00
学习 谢谢

我会继续发现新事物和作出新发现,是很大的满足。

hjsoq 发表于 2023-6-14 20:42:20

学习使人富有

無爲编程破译 发表于 2023-6-15 01:31:30

hjsoq 发表于 2023-6-14 20:42
学习使人富有

孺子可教也,吾庐今几何。青山如画里,白发对吟多。

vip001 发表于 2023-6-17 15:15:52

hjsoq 发表于 2023-6-14 20:42
学习使人富有

不错不错,挺好,有用的哈哈哈哈
页: [1] 2 3
查看完整版本: 破位开仓和破位平仓