如何找到移动平均线交叉的条形图的时间?(里面的代码) - 页 2

 

哦,Alladir--你似乎是那种令人讨厌的类型。

帮你自己一个忙,不要再浪费你自己的时间在这个线程或任何未来我可能会写的线程上,如果你要做的只是拖拖拉拉,没有任何帮助的话。

 
DomGilberto:

哦,Alladir--你似乎是那种令人讨厌的类型。

帮你自己一个忙,不要再浪费你自己的时间在这个线程或任何未来我可能会写的线程上,如果你要做的只是拖拖拉拉,没有任何帮助的话。

如果你不能保持文明,就不要发帖。
 

WHRoader(如果你不介意的话),你能告诉我,我这样做是对还是错?

double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0); 

int Buy_Price = buyPrice; 

int buyticket = OrderSend(Symbol(),Buy_Price,LotSize,Ask,3,0,0,NULL,MagicNumber,0,Green);   Usually I'd put OP_BUY where Buy_Price is...

你的意思是说,因为iHighest只是说明了一个条形数字,我试图把Buy_Price放在OP_BUY原来的位置,并没有任何意义,因为OrderSend需要一个双数?(当iHighest是一个整数时?)

我怎样才能将我的iHighest逻辑转换为价格,以便我的OrderSend函数 理解我想购买iHighest范围内的最高值?

 
RaptorUK:
如果你不能保持文明,就不要发帖。


是的,你是对的。对不起。
 
DomGilberto:

WHRoader(如果你不介意的话)你能告诉我,我这样做是对还是错?

"double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0); "

int Buy_Price= buyPrice。

"int buyticket =OrderSend(Symbol(),Buy_Price,LotSize,Ask,3,0,0,NULL,MagicNumber,0,Green);" 通常我会把OP_BUY放在Buy_Price的地方...


  1. 播放视频
    编辑 你的帖子。
    对于大量的代码,请附上它。

  2. "double buyPrice = iHighest... 
    "double price = int bar index," 没有意义。把它分解开来。
    // double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0);
    int    iTBT     = iBarShift(Symbol(), 0, triggerBarTime, true),
           iHH      = iHighest(Symbol(), 0, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
    double buyPrice = High[iHH];
    
  3. 如果大多数的函数(除了marketInfo),你不需要使用Symbol()。你可以使用NULL作为当前图表符号,就像你已经使用0作为当前图表时间框架一样。
 

Omg--为什么你意识到之后会如此清晰!?我想这就是实践出真知。

说实话,我现在明白得多了。在我的脸上写上一个:)!

我现在要试着把这件事做好,看看我能拿出什么来!

谢谢你!!

 
int buyticket = OrderSend(Symbol(),buyPrice,LotSize,Ask,3,0,0,NULL,MagicNumber,0,Green);

当我试图使用下面这个方法时,我在日志中得到一个错误,说OrderSend cmd函数 必须是一个整数?

我显然没有理解,因为你提到 "OrderSend只接受一个价格(一个双数),在9点开单没有意义"

显然,如果我把它改为 "int Buy_Price = buyPrice",这对下订单是有效的,但它与进入的位置无关。(这是我的最后一个问题--当然,我不想受人指责!)

int iTBT= iBarShift(NULL,60, triggerBarTime, true),
         iHH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
            double buyPrice = High[iHH];
 
DomGilberto:

当我试图使用下面这个时,我在日志中得到一个错误,说OrderSend cmd函数必须是一个整数?

我显然没有理解,因为你提到 "OrderSend只接受一个价格(一个双数),在9点开一个订单是没有意义的"

显然,如果我把它改为 "int Buy_Price = buyPrice",这对下订单是有效的,但它与进场位置无关。(这是我的最后一个问题--当然,我不希望被人嘲笑!)。

错误在于OrderSend() 中的cmd,我知道你不想听,但如果你想学习,你也必须学会检查文档并学会如何阅读......这都是过程的一部分......当我编写OrderSend()命令时,我每次都会对照文档来检查我是否记得正确。

int buyticket = OrderSend(Symbol(),buyPrice,LotSize,Ask,3,0,0,NULL,MagicNumber,0,Green);

这是什么类型的订单?点击 -->OrderSend() 说第二个参数是cmd - 操作类型。它可以是贸易操作枚举 中的任何一个

 

是的,你是对的,RaptorUK - 我实际上(几乎在我做的每件事上)都在阅读文件(手指几乎一直坐在F1上)。

天哪,我现在才意识到我有多蠢!我不是故意把buyPrice放在一个地方的。

我不是想把buyPrice放在cmd的第二个参数里,我是想把它放在第四个参数里(双倍价格)!这样就可以了(把它放在cmd里)。

这样就可以了(把它放在正确的顺序上)--我已经把它改成了买入和卖出止损单。天哪,我对我的愚蠢行为感到很恼火

int buyticket = OrderSend(Symbol(),OP_BUYSTOP,LotSize,buyPrice,3,bsl,btp,NULL,MagicNumber,0,Green); 
      if(buyticket>0)OrderModify(buyticket,OrderOpenPrice(),bsl,btp,0,CLR_NONE);

int iTBT= iBarShift(NULL,60, triggerBarTime, true),
        iHH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
            double buyPrice = High[iHH];

买入价格 "只是简单地将订单置于触及21 EMA的最近闭合柱的高点之上(而不是触及21 EMA的MA交叉的最高柱...)。

我将玩一玩,看看我在哪里出了问题!(花了这么多时间盯着这个,现在变得很痛苦了,lol.)

谢谢你!!!!

(p.s 什么是//包括tBT酒吧。Len=从-到+1个音符的意思?)

 
  1. DomGilberto:

    (p.s what does// Include tBT bar. Len = from - to + 1 note mean?)

    HH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1

    iTBT+1小节的最高小节索引从零开始,包括iTBT小节。

    你的原帖

    double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0);
    
    没有包括 triggerBarTime 条。
  2. iHH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
    double buyPrice = High[iHH];
    你为什么把NULL,0改成NULL,60?现在iHH只对PERIOD_H1图表有效,如果当前图表不是H1,那么High[iHH]就是假的。
原因: