[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 175

 

下午好,请你告诉我是否有一个代码


OrderSelect(OrdersHistoryTotal()-1, SELECT_BY_POS, MODE_HISTORY);//выбрать последний ордер
if (OrderType()==OP_BUY||OP_SELL)
 {
 if (OrderMagicNumber()==1)
  {
  if (OrderProfit()<0)

   {

这将选择历史上最后一个有负利润的订单。

如果出现3个订单同时关闭的情况,我怎么知道最后3个订单是同时关闭的?

我试着做for循环,但它发现所有的订单 都是亏损关闭的,而我只需要最后一个订单或最后一个订单,这取决于他们中有多少人同时关闭

 
BruDer:

我在搜索中没有找到答案

我怎样才能从脚本中看到图表上有哪些指标,哪些参数和指标,它们位于哪个子窗口中?

谢谢


不可能。
 

vik-777:

我怎么知道最后3个是在同一时间关闭的?

订单关闭时间(OrderCloseTime)。
 
vik-777:

下午好,请你告诉我是否有一个代码


这将选择历史上最后一个有负利润的订单。

如果出现3个订单同时关闭的情况,我怎么知道最后3个订单是同时关闭的?

我试着做for循环,但它发现所有的订单都是亏损关闭的,而我只需要最后一个订单或最后一个订单,这取决于他们有多少人同时关闭




如果它是相同的,那么你就把它与你以前的平仓订单的平仓时间进行比较...像这样,自然,这一切都在一个循环中--从最后一个关闭到第一个,你一个接一个,比较订单关闭的时间......另一件事--打印你事先知道的最后一个订单的关闭时间,比方说三个订单 它可能是不同的,即使你理解为 " 同时",即按照我的理解,订单在任何时间关闭,即。实际上,比如说,三个订单的关闭时间不可能是一样的--试着打印(),看看你的三个TIME订单的值--它们的OrderCloseTime()的特征值,也就是说,我们可能要引入关闭时间的概念,也就是说,当我们可能认为它们同时关闭时,几个订单的关闭时间偏离一些小值 。实验一下,从这里自己看。
 

接受大厅的帮助。

如何在OrderSelect() 中编写条件。

if(order opening day != today's day)ticket=OrderTicket();

 
如果(TimeDay(OrderOpenTime())!=TimeDay(CurrentTime())),ticket=OrderTicket()。
 
ikatsko:

你如何计算盈利的多头头寸数量,并分别计算盈利的空头头寸数量?

该策略如下:如果自EA开始以来(或更好的情况下--整个账户历史)盈利的多头头寸数量大于空头头寸数量,那么只允许开多头头寸。反之亦然。

如何计算这些交易是很清楚的,如果它们被专家顾问关闭:关闭-计数。但如果一个头寸被TP或SL平仓,那么......。?

也许有人有一个现成的函数代码?

那么,在已关闭的头寸 上循环比较它们的收盘价以及它们的取价和止损价。

OrderTakeProfit(); OrderStopLoss(); OrderClosePrice();

而选择OP_BUY和OP_SELL,并在四个独立的变量中写出亏损和盈利的买入和卖出头寸的数量,就更加容易了。

如果(OrderProfit()+OrderSwap()+OrderCommission()>0) { /*头寸是盈利的 */ }
else { /*头寸是亏损的 */ }

 
谢谢你!
 

我看了一切......,我做了一切......。它不会打开一个位置,就是这样!它可以正常关闭,但不能打开...我不知道该怎么做!也许有人会发现程序中的一个错误?

 
//+------------------------------------------------------------------+
//|                                                     DOKTRADE.mq4 |
//|                                                DOKSTER@YANDEX.RU |
//|                                                DOKSTER@YANDEX.RU |
//+------------------------------------------------------------------+
#property copyright "DOKSTER@YANDEX.RU"
#property link      "DOKSTER@YANDEX.RU"

   extern double LOT = 0.01;   // LOTS
   extern double KOF = 2;
   extern double SAF = 5;
   extern int    FRC = 144;
   extern double STL = 100;
   extern double TPF = 100;
   
   int start()
     
    { 


int CNT;

int DIG;

int TOTAL;
int SPREAD;

double SPR;
double SPRW;

double FRCU;
double FRCD;

double EMAH;
double EMAM;
double EMAL;

double OPEN;
double CLOSE;

double DFB;
double DFS;

double STLW = STL*Point;
double TPFW = TPF*Point;

double SAFW = SAF*Point;

EMAH = iMA(NULL,0,34,8,MODE_SMA,PRICE_HIGH,1);
EMAM = iMA(NULL,0,34,8,MODE_SMA,PRICE_MEDIAN,1);
EMAL = iMA(NULL,0,34,8,MODE_SMA,PRICE_LOW,1);

OPEN = iOpen(NULL,0,1);
CLOSE = iClose(NULL,0,1);

FRCU = High[iHighest(NULL,0,MODE_HIGH,FRC,1)];
FRCD = Low[iLowest(NULL,0,MODE_LOW,FRC,1)];

DFB = (CLOSE-FRCD);
DFS = (FRCU-CLOSE);

SPR = MarketInfo(Symbol(),MODE_SPREAD);
SPRW = (SPR*Point);

DIG = MarketInfo(Symbol(),MODE_DIGITS);

TOTAL = OrdersTotal();


if(TOTAL<1)

 { if (OPEN<EMAH&&CLOSE>EMAH)
   
   OrderSend(Symbol(),OP_BUY,LOT,Ask,3,0,0,"DOKTRADE",15775,0,Green);
  
 
   if (OPEN>EMAL&&CLOSE<EMAL)
 
   OrderSend(Symbol(),OP_SELL,LOT,Bid,3,0,0,"DOKTRADE",15885,0,Red);
  
  return(0);
 
    }
    
           
      
  for(CNT=0;CNT<TOTAL;CNT++)    
  
  {
      
  OrderSelect(CNT,SELECT_BY_POS,MODE_TRADES);
  
  {
  
  if (OrderType()==OP_BUY && OrderSymbol()==Symbol())   
                                             
      {
      
       if (OPEN>EMAL&&CLOSE<EMAL)    
     
        OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);
        
         if (OPEN>EMAM&&CLOSE>EMAM)
          
           OrderModify(OrderTicket(),OrderOpenPrice(),FRCD-SAFW,CLOSE+DFB,Green);
        
        return(0);
        
        }
        
  if (OrderType()==OP_SELL && OrderSymbol()==Symbol())
        
      {
       
         if (OPEN<EMAH&&CLOSE>EMAH)
         
         OrderClose(OrderTicket(),OrderLots(),Ask,3,Blue);
         
          if (OPEN<EMAM&&CLOSE<EMAM)
           
           OrderModify(OrderTicket(),OrderOpenPrice(),FRCU+(SAFW+SPRW),CLOSE-DFS,Red);
       
         return(0);
         
         }
          }
           }
            }
原因: