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

 
Stereosin:
大家好。我们的想法是,在触发止损时,为每个未平仓市场订单(即获利和止损)放置相反方向的挂单(如果买入订单,则发送挂单)。我找不到任何语法序列来写一个脚本,当当前订单在获利时关闭时删除挂单?也许在免费的脚本中,有一个书面的脚本,但搜索并不成功( 。我想自己写一个,以便能够处理它,但我不能理解语法顺序。让我用另一个例子来解释--我想吃冰淇淋--语法顺序--1)--离开沙发2)穿上衣服3)去商店4)买冰淇淋。我的任务是否也可以这样做?

当当前订单关闭时,买入订单的数量 将减少,或根本没有(取决于算法),你做这个检查并删除待定订单

像这样(在这种情况下,相反,如果早先买入的订单已经获利平仓,那么挂单将被删除)。

 for(int m=OrdersTotal()-1;m>=0;m--)
   if(OrderSelect(m,SELECT_BY_POS,MODE_TRADES)) 
     if(Symbol()==OrderSymbol() && OrderMagicNumber()==Magic) {  
    
      if(OrderType()==OP_BUY)  sBuy++; 
      if(OrderType()==OP_SELL) sSell++;
       
      if(OrderType()==OP_BUYLIMIT)
       if(sBuy==0 || sSell>0) OrderDelete(OrderTicket());
      if(OrderType()==OP_SELLLIMIT) 
       if(sSell==0 || sBuy>0) OrderDelete(OrderTicket());
  }
 
Ratmirf:

所以这是对的吗?

如果(OrderOpenTime()+7200+15*60 <=TimeCurrent()) Cls_Buy=true

如果(OrderOpenTime()+7200+900 <=TimeCurrent()) Cls_Buy=true;

而最终变成这样?

如果(OrderOpenTime()+8100 <=TimeCurrent())Cls_Buy=true。

嗯,这是高中数学...要更有信心一些。
 
harbor:

当当前订单关闭时,买入订单的数量将减少,或根本没有(取决于算法),你做这个检查并删除待定订单

像这样(在这种情况下,相反,如果早先买入的订单已经获利平仓,则挂单被删除)。

非常感谢你。我今晚会研究一下。
 

如果发生这种情况--我把止损增加到所需的大小。 我没有设置阈值,而是在程序中保持虚拟,然后打开订单。 结果,15到20个订单中只有一个打开。 我应该怎样做才能打开每个订单?

RefreshRates();


     double bid = MarketInfo(symbol,MODE_BID);
     double ask = MarketInfo(symbol,MODE_ASK);

    

     double stoplevel =  NormalizeDouble(stoplevelTemp * tickTemp,digitsTemp)+tickTemp;

     if(digitsTemp == 5 )
          stoplevel+=(700 * tickTemp);
     
     if(spreadOrdDangBr < stoplevel)                                                                           //если спред меньше стоплевела - перебиваем
         spreadOrdDangBr=stoplevel;
         
     double lotDB = calculationLot(spreadOrdDangBr,0.0025);                                                      //расчитываем лот - четверть процента свободных денег
     


         slODB=ask-spreadOrdDangBr;                                                                              
         tpODB= ask+ spreadOrdDangBr;

         orderTicketODB=OrderSend(symbol,OP_BUY,lotDB,ask,3,slODB,0,("dangBr" +spreadOrdDangBr));



并因此在终端


 
大家好)如何确定所选条形的最高价格(如第100条)?
 

请帮助我!我想建立买入头寸,如果价格上涨了100
点,我的止损 就会相对于之前的止损变成等于零。

我的做法正确吗?


如果(Bid-OrderOpenPrice()>Point*100)

{

OrderModify(OrderTicket(),OrderOpenPrice(),0,TakeProfit,0,)。

return(0);

}

谢谢你!

 
Tema97:
你好)如何确定所选条形图的最高价格(如第100条)?
高[100]将无济于事
 

我发现了一个函数,它定义了100个柱子的最高和最低价格,并画出了水平线(请帮助我使前15个柱子通过,然后才检查100个(如何使这个转变?),还有一个关于线的问题--它只画1次--也就是说--如果我们再走100个点,有新的高点和低点--线就不画了)有谁知道请写下来--这里是代码

外部inttern Quant_Bars=100; //条数。

//--------------------------------------------------------------------

int start() // 特殊功能启动

{

int i; // bar number

double Minimum=Bid; // 最低价格

最高价=出价; //最高价

for(i=0;i<=Quant_Bars-1;i++) // 从零(!)到

{ // ...Quant_Bars-1 (!)

如果(Low[i]<最小值)//如果<已知

Minimum=Low[i]; // 这将是最小值。

如果(High[i]> Maximum)//如果>已知

Maximum=High[i]; //它将是最大值。

}

Alert("对于最后的",Quant_Bars, //显示

"Min=",Minimum," Max=",Maximum)。

double linia1=ObjectCreate("highLine",OBJ_HLINE,0,0,Maximum)。

double linia2=ObjectCreate("lowLine",OBJ_HLINE,0,0,Minimum);

return(0); //exit start()

}

 
特马 终于读完了文件。你可以在那里找到很多有趣的东西...例如,iHighest 返回相应图表的最大发现值的索引(与当前条形图的偏移)。而iHigh 则返回相应图表的条形图(由shift参数指定)的最高价格的值。一旦你理解了这两个函数,你就可以很容易地解决你的问题,而不必求助于那些不一定由他人编写的函数。
 
伙计们,如果指标画出非标准的图形对象,是否可以访问它们?问题是,它们没有显示在对象列表中(当按下所有按钮时),ObjectsTotal()函数也没有看到它们。当试图通过名称访问对象时,GetLastError()返回错误4202(ObjectFind()函数)