[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 298

 
bool isCloseLastPosByTake(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   ocp, otp;
  int      dg, i, j=-1, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
  if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {                     // !!!!!!!!?????? ХОТЬ КТО-ТО МОЖЕТ ОБЪЯСНИТЬ ЗНАЧЕНИЕ СТРОК КОДА, КОТОРЫЕ НАЧИНАЮТСЯ С ЭТОГО МЕСТА?
    dg=MarketInfo(sy, MODE_DIGITS);
    if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
    ocp=NormalizeDouble(OrderClosePrice(), dg);
    otp=NormalizeDouble(OrderTakeProfit(), dg);
    if (ocp==otp) return(True);
  }
  return(False);
 
okvseok:

bool isCloseLastPosByTake(string sy="", int op=-1, int mn=-1) {
 datetime t;
 double ocp, otp;
 int dg, i, j=-1, k=OrdersHistoryTotal();

 if (sy=="0") sy=Symbol();
 for (i=0; i<k; i++) {
 if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
 if (OrderSymbol()==sy || sy=="") {
 if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
 if (op<0 || OrderType()==op) {
 if (mn<0 || OrderMagicNumber()==mn) {
 if (t<OrderCloseTime()) {
 t=OrderCloseTime();
 j=i;
 }
 }
 }
 }
 }
 }
 }
 // !!!!!!!!?????? ХОТЬ КТО-ТО МОЖЕТ ОБЪЯСНИТЬ ЗНАЧЕНИЕ СТРОК КОДА, КОТОРЫЕ НАЧИНАЮТСЯ С ЭТОГО МЕСТА?
 if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {// Если очередной ордер истории торгов выбран, то
 dg=MarketInfo(sy, MODE_DIGITS);// переменная dg принимет значение дигитса по валютной паре, имя которой лежит в переменной sy
 // далее я возможно не верно расставил приоритет скобок, но по сути должно быть так:
 if (dg==0){// если дигитс равен нулю, то
 if(StringFind(OrderSymbol(),"JPY")<0){// если в имени инструмента ордера найдена подстрока то (только это не правильно написано - функция может верноуть значение > 1)
 dg=4;// дигитс принимает значение = 4
 }
 else{// иначе
 dg=2;// дигитс принимает значение = 2
 }
 }
 ocp=NormalizeDouble(OrderClosePrice(), dg);// нормализация цены закрытия ордера
 otp=NormalizeDouble(OrderTakeProfit(), dg);// нормализация цены ТейкПрофита ордера
 if (ocp==otp) return(True);
 }
 return(False);// команда вернуть из подпрограммы значение "ложь"
 }
 
drknn:

bool isCloseLastPosByTake(string sy="", int op=-1, int mn=-1) {
datetime t;
双重OCP,OTP。
int dg, i, j=-1, k=OrdersHistoryTotal()。

如果(sy=="0")sy=符号()。
for (i=0; i<k; i++) {
如果(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){
如果(OrderSymbol()==sy || sy=="){
如果(OrderType()==OP_BUY || OrderType()==OP_SELL) {
如果(op<0 || OrderType()==op){
如果(mn<0 || OrderMagicNumber()==mn) {
如果(t<OrderCloseTime()){
t=OrderCloseTime()。
j=i。
}
}
}
}
}
}
}
// !!!!!!!!??????谁能解释一下从这个地方开始的几行代码的含义?
如果(OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)){//如果选择了交易历史中的下一个订单
dg=MarketInfo(sy, MODE_DIGITS);//变量dg将接受货币对的数字值,其名称在变量sy中。
//此后可能我把括号放错了,但实际上应该是这样的
如果(dg==0){//如果数字为零,则
如果(StringFind(OrderSymbol(), "JPY")<0){//如果在订单符号名称中找到一个子串,那么(只是写得不对--函数可以验证>1)。
dg=4;//数字取值=4
}
其他{//其他
dg=2;//数字取值=2
}
}
ocp=NormalizeDouble(OrderClosePrice(), dg);//正常化订单收盘价
otp=NormalizeDouble(OrderTakeProfit(), dg);//将订单的获利价格正常化。
如果(ocp==otp)返回(True)。
}
return(False);//命令从子程序返回(false)。
}
谢谢,什么是数字?
 
okvseok:
谢谢你,什么是数字?

交易工具的数字 - 小数点后有多少个数字。
 
drknn:

交易工具的意义 - 小数点后有多少个数字。

也就是说,如果我知道数字是4,那么代码可以像这样缩短?

int dg = 4;

............ 代码

如果(OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)){

ocp=NormalizeDouble(OrderClosePrice(), dg);//正常化订单收盘价
otp=NormalizeDouble(OrderTakeProfit(), dg);//正常化订单获利价格
if (ocp=otp) return(True);
}

return(False)。

}

 
我不知道这是否可能--根据作者的想法(好吧,在我看来),这部分代码的设计是为了自动确定数字--这样代码就可以准确地确定小数点后有多少位的价格要四舍五入。只有这部分的代码是无用的。
 
请告诉我,是否有一个指标可以计算交易过程中涉及的所有货币对的未平仓订单总数?
 
yosuf:
请告诉我是否有一个指标可以计算所有参与交易的货币对的未结订单总数?
不,不。做一个简单的专家顾问,计算未结头寸 的数量是比较容易的。
 
向CodeBase的老板提问。我已经向那里发送了3份出版物(加上3份英文出版物)。其中一份是在7月18日发出的,还没有公布。一开始,当我把代码送到那里时,它们在3-4天内出现。现在还不清楚是否会有新的作品发表。我想知道,比如说,材料很薄弱,在主管看来,他们不应该把它们塞进CodeBase,我是否会收到任何信息,说它们不会出现,然后,比如说,它们会从应用程序中被删除?如果我知道它们不会被出版,我就会以不同的方式准备出版,更广泛地准备。是否有任何平均等待出版的时间?
 
paladin80:
向CodeBase的老板提问。我已经向那里发送了3份出版物(加上3份英文出版物)。其中一份是在7月18日发出的,还没有公布。一开始,当我把代码送到那里时,它们在3-4天内出现。现在还不清楚是否会有新的作品发表。我想知道,比如说,材料很薄弱,在主管看来,他们不应该把它们塞进CodeBase,我是否会收到任何信息,说它们不会出现,然后,比如说,它们会从应用程序中被删除?如果我知道它们不会被出版,我就会以不同的方式准备出版,更广泛地准备。是否有任何平均等待出版的时间?
毫不含糊地进入了史册!