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

 
FAQ:


我明白了,那么更多的问题。

你需要用函数:iTime 来控制蜡烛的打开时间。

我试图用这个函数来控制蜡烛图的打开时间:iTime

订单在15点的蜡烛上打开......,但15点的蜡烛往往不是第一支。

在这之前,早期的蜡烛图已经接触到了1.3000。

而且我需要它在15点烛台之前,该烛台已经越过1.3000。

谢谢你。

 
有时,新手们会感到困惑......确切的说是逻辑,简单的人类逻辑。编程是相当线性的,试着用一条线来思考你的条件。
 
FAQ:
有时,新手会感到困惑......正是逻辑,简单的人类逻辑。而编程是相当线性的。

让我以图形的方式给你我的想法。

http://clip2net.com/s/5vbxUK

那么你如何将这一想法写成一句话呢?

谢谢你。
 
在时间上,按相反的顺序。这就是程序的分析方式。想象一下,你正处于决策点。
 
FAQ:
这就是程序的分析方法。

对不起--我不太明白你的意图。

如果你能写出它在代码中的样子,我会很感激......

谢谢你。

 
solnce600:

大家下午好!

如果有人能告诉我如何为这样的想法编码,我将非常感激。


图为TF 5

目前的出价是1.3150

有一个价格水平 - 1.3000。

价格就会下降。

====================================

// 如果价格越过 1.3000。

// 如果价格首先 越过1.3000。

// 如果价格首先 越过1.3000 ,并且越过的时间是 15小时 的蜡烛上(即15:00,15:05.....15:55)


// 打开一个交易。

===================================

谢谢你。



这只是一个想法,没有全面实施

外部  double crossLevel = 1.                       3;extern int hour = 15;int start(){    static int cross = 0;    if (TimeHour(TimeCurrent() == hour) {//蜡烛对应小时        if (isCrossPrice(crossLevel, Bid) {//水平交叉 让 Bid            cross++;            if ( cross == 1) {//第一次交叉水平                ifxml-ph//开一个订单--自己实现                     cross = 0;                }            }        }    }bool isCrossPrice(double level, double price){    bool res = false;    static doubleprev = 0;    if ( prev > 0) {        if ( (prepare <= level && price > level) || // cross level up            (prev >= level && price < level)) { // cross level down            res = true;        }    }    prev = price;    return(res);}
 
keekkenen:

只可意会不可言传


非常感谢你。
 
solnce600:


对不起--我不太明白你的意图。

如果你能把它以代码的形式写下来,我会很感激......

谢谢你。


离代码还有很长的路要走,你必须了解原理、算法。
 

我已经挣扎了两天了,想不通。我需要找到过去n个柱子的最低价格,但不是从当前的柱子,而是从通过函数收到的柱子。该函数返回订单被打开的条形图的索引。这是我们需要通过历史上的n个条形来寻找最低价格的条形。下面是我的代码,它有什么问题吗?

 double low_price_n_bar()
 {
   
   double low_bar=100000, index_bar;
   
   for (int i=time_orders; i<=count_bar; i++) //time_orders индекс бара получаемого из функции, count_bars внешняя переменная количество баров для сдвига назад по истории
   {
    index_bar= ND(iLow(Symbol(),0,i));
    if (index_bar<low_bar)
    {
      low_bar=index_bar;     
    }
   
   }
   return(low_bar);
 }
 

亲爱的论坛网友,请你帮帮我。


if (TimeBar==Time[0]) return(0); double MA1 =


NormalizeDouble(iMA(NULL,TimeFrame_2,MA_Period_2,MA_Shift_2,MA_Method_2,Applied_Price_2,0),Digits); //其中0是从当前条形图中移出的指定数值。返回的时期数 //double MA21 = NormalizeDouble(iMA(NULL,timeframe_2,period_2,ma_shift_2,ma_method_2,applied_price_2,2),Digits) 。double MA2 = NormalizeDouble(iMA(NULL,timeFrame_3,MA_Period_3,MA_Shift_3,MA_Method_3,Applied_Price_3,0),Digits); //double MA31 = NormalizeDouble(iMA(NULL,timeframe_3,period_3,ma_shift_3,ma_method_3,applied_price_3,2) ,Digits)double MA3 = NormalizeDouble(iMA(NULL,TimeFrame_4,MA_Period_4,MA_Shift_4,MA_Method_4,Applied_Price_4,0),Digits); double OsMA = NormalizeDouble(iOsMA(NULL,TimeFrame_5,FastEMA_5,SlowEMA_5,SignalSMA_5,Applied_Price_5,0) ,Digits。)如果(MaxOrders>b && Low[0]>=MathMax(MA1,MA2)&& Low[0]>MA3 && Ask>)MathMax(MA1,MA2)+DeltaOpen*Point && Ask>MA3 && MA2<MA3 && MA1<MA3 && OsMA>0 && Trade){ if (OrderSend(Symbol(,OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slippage,SL,TP, "Puria_1",Magic,0,Blue) ==-1) TimeBar=0; else TimeBar=Time[0]; }如果(MaxOrders>s &&High[0]<=MathMin(MA1,MA2) &&High[0]<MA3 && Bid<MathMin(MA1,MA2)-DeltaOpen*Point && Bid<MA3 && MA1>MA3 && MA2>MA3 && OsMA<0 && Trade){ if (OrderSend(Symbol(,OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slippage,SL,TP, "Puria_1",Magic,0,Red) ==-1) TimeBar=0; else TimeBar=Time[0]; }


















return(0);


在这些条件下,专家顾问开了一笔交易,比如说,在卖出时,在盈利时关闭,并立即在卖出时开了另一笔交易。如何在EA中规定,当收到信号时,只有一个交易应该打开,即一个信号-一个交易。
我预先感谢你。