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);
}
我明白了,那么更多的问题。
你需要用函数:iTime 来控制蜡烛的打开时间。
我试图用这个函数来控制蜡烛图的打开时间:iTime
订单在15点的蜡烛上打开......,但15点的蜡烛往往不是第一支。
在这之前,早期的蜡烛图已经接触到了1.3000。
而且我需要它在15点烛台之前,该烛台已经越过1.3000。
谢谢你。
有时,新手会感到困惑......正是逻辑,简单的人类逻辑。而编程是相当线性的。
让我以图形的方式给你我的想法。
http://clip2net.com/s/5vbxUK
那么你如何将这一想法写成一句话呢?
谢谢你。这就是程序的分析方法。
对不起--我不太明白你的意图。
如果你能写出它在代码中的样子,我会很感激......
谢谢你。
大家下午好!
如果有人能告诉我如何为这样的想法编码,我将非常感激。
图为TF 5
目前的出价是1.3150
有一个价格水平 - 1.3000。
价格就会下降。
====================================
// 如果价格越过 1.3000。
// 如果价格首先 越过1.3000。
// 如果价格首先 越过1.3000 ,并且越过的时间是 在 15小时 的蜡烛上(即15:00,15:05.....15:55)。
// 打开一个交易。
===================================
谢谢你。这只是一个想法,没有全面实施
只可意会不可言传
对不起--我不太明白你的意图。
如果你能把它以代码的形式写下来,我会很感激......
谢谢你。
离代码还有很长的路要走,你必须了解原理、算法。
我已经挣扎了两天了,想不通。我需要找到过去n个柱子的最低价格,但不是从当前的柱子,而是从通过函数收到的柱子。该函数返回订单被打开的条形图的索引。这是我们需要通过历史上的n个条形来寻找最低价格的条形。下面是我的代码,它有什么问题吗?
亲爱的论坛网友,请你帮帮我。
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中规定,当收到信号时,只有一个交易应该打开,即一个信号-一个交易。
我预先感谢你。