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

 
drknn:


从问题的定义开始。

- 使用脚本来检测图表上是否有线。

- 如果该行存在,将其开始和结束价格打印到变量中;将条形数字(或时间)打印到变量中。

- 使用脚本进行必要的计算。

- 将结果打印到屏幕上(或打印到文本文件或专家顾问日志上)。

如果你没有办法马上解决这4个问题,就从学习语言开始。


drknn! 谢谢你我会研究的!!!。
 
Zhunko:

这不是什么秘密。有很多关于它的文章。用什么工具来创造这个故事并不重要。关键是要更新图表,以便专家顾问在上面工作。

这可以通过WinAPI来完成。这里已经描述过很多次了。我已经写了一个图书馆。我把它贴在这里

它包含控制图表自主更新的功能。它不需要任何脚本或专家。但这并不适合所有人。还有一些功能可供大家使用,以从专家顾问、脚本或指标中更新图表。使用它们比较困难。因为你必须考虑出你的哪些方案会更新图表。例子在测试脚本中。

你是否碰巧有一个现成的解决方案来 "提取 "日志文件的最后一行来显示在评论中?
 

帮助一个书呆子。只是为了梳理一下问题的本质。

我在图表上有两个点,第2点--比较接近零点的那一个,以及t.1--历史上离零点较远的那一个。我试图从这两点画出一条趋势线

通过在这些点之间延长N个(可变的int RayLong)间隔来实现。代码如下。

if (RayLong!=0 && point1s==true && point2s==true)
{
//расчет цены в будущем
if (price11s>price22s) {price11s=NormalizeDouble(price11s+((price11s-price22s)*RayLong),Digits);} 
if (price11s<price22s) {price11s=NormalizeDouble(price11s-((price22s-price11s)*RayLong),Digits);}
//расчет бара в будущем
int bis=iBarShift(Symbol(),0,time22s,true)-iBarShift(Symbol(),0,time11s,true);
Print("Sup "+iBarShift(Symbol(),0,time22s,true)+" "+iBarShift(Symbol(),0,time11s,true)+" "+bis+
" sec="+bis*Period()*60*NormalizeDouble(RayLong,Digits)+" Time="+TimeToStr(time11s+(Period()*60*
(iBarShift(Symbol(),0,time22s,true)-iBarShift(Symbol(),0,time11s,true)+1)*RayLong),TIME_DATE|TIME_SECONDS));
time11s=time11s+(Period()*60*((iBarShift(Symbol(),0,time22s,true)-iBarShift(Symbol(),0,time11s,true))*RayLong));
//time11s=time11s+((time11s-time22s)*RayLong); //альтернативный вариант предыдущей строки
}
问题是计算点在日期上是浮动的。价格还可以。另一方面,日期要么很好,要么浮动。印刷品显示,当结算日期不在日程表上时--周末或节假日,就会出现这种情况。请提出解决问题的办法。
 
forexnew:
你是否碰巧有一个现成的解决方案来 "提取 "日志文件的最后一行来显示在评论中?
这是没有用的。日志文件是在MT4上传后或MT4有时间时填写的。
 
ZZZEROXXX:

帮助一个书呆子。只是为了梳理一下问题的本质。

我在图表上有两个点,第2点--比较接近零点的那一个,以及t.1--历史上离零点较远的那一个。我试图从这两点画出一条趋势线。

通过在这些点之间延长N个(可变的int RayLong)间隔来实现。代码如下。

问题是计算点在日期上是浮动的。价格方面一切都没问题。另一方面,日期要么很好,要么浮动。我用Print来计算,当结算日期不在日程表上时--周末或节假日,就会发生这种情况。请告诉我如何解决这个问题。

我不明白这个问题。如果你是按价格和条形图 画图表上没有周末和非周末的条形图 。因此,该趋势并应持续到与交易日日期相对应的下一个条形图。

还是对你来说是不同的?

 

请告诉我,在下面的代码中,数组是否会被填上待定订单 的信息。

int tiket[]。

int SetFunk()

{

for (i=0; i<=k-1; i++)

{
ticket[i]=OrderSend(Symbol(),OP_BUYSTOP,0.01*Lots,Ask+Step*i*Point,3,Bid-S_Loss*Point,0," 10000,0,Green);

ticket[i+k]=OrderSend(Symbol(),OP_SELLSTOP,0.01*Lots,Bid-Step*i*Point,3,Ask+S_Loss*Point,0,"",10000,0,Green);

}

}

?????
在尝试打印()时返回空值。

 
静态内存类 的作用是什么?如果可能的话,你能举出一个在代码中使用它的好例子,并强调使它从其他内存类中脱颖而出的特点吗?这个东西似乎没有用,谁知道是什么?
 
myrzila:

请告诉我,在下面的代码中,数组是否会被填上待定订单的信息。

int tiket[]。

int SetFunk()

{

for (i=0; i<=k-1; i++)

{
ticket[i]=OrderSend(Symbol(),OP_BUYSTOP,0.01*Lots,Ask+Step*i*Point,3,Bid-S_Loss*Point,0," 10000,0,Green);

ticket[i+k]=OrderSend(Symbol(),OP_SELLSTOP,0.01*Lots,Bid-Step*i*Point,3,Ask+S_Loss*Point,0,"",10000,0,Green);

}

}

?????
当尝试打印()时,返回空值。

首先设置数组的大小(ArrayResize),然后对其进行操作
 

你好。

我有一个EA。

我怎样才能让它显示图片中所示的移动平均线水平?

现在,它只显示零。


//+------------------------------------------------------------------+
//|专家初始化功能 |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//|专家去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
int start()
{
//----
SetLabel("MA_LABEL",DoubleToStr(iMA(Symbol(),13,30,8,MODE_SMA,PRICE_CLOSE,0)-0.0015,0),Red,10,20,0,20)。
SetLabel("MA_LABEL2",DoubleToStr(iMA(Symbol(),13,30,8,MODE_SMA,PRICE_CLOSE,0),0),Red,10,50,0,20)。
//----
return(0);
}
//+------------------------------------------------------------------+


void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9) {
如果(ObjectFind(nm)<0)ObjectCreate(nm, OBJ_LABEL, 0, 0,0)。
ObjectSetText(nm, tx, fs)。
ObjectSet(nm, OBJPROP_COLOR, cl)。
ObjectSet(nm, OBJPROP_XDISTANCE, xd)。
ObjectSet(nm, OBJPROP_YDISTANCE, yd)。
ObjectSet(nm, OBJPROP_CORNER, cr)。
ObjectSet(nm, OBJPROP_FONTSIZE, fs)。
}




 
emilien:


你好。

我有一个EA。

我怎样才能让它显示图片中所示的移动平均线水平?

现在,它只显示零。


//+------------------------------------------------------------------+
//|专家初始化功能 |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//|专家去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//|专家启动功能|
//+------------------------------------------------------------------+
int start()
{
//----
SetLabel("MA_LABEL",DoubleToStr(iMA(Symbol(),13,30,8,MODE_SMA,PRICE_CLOSE,0)-0.0015,0),Red,10,20,0,20)。
SetLabel("MA_LABEL2",DoubleToStr(iMA(Symbol(),13,30,8,MODE_SMA,PRICE_CLOSE,0),0),Red,10,50,0,20)。
//----
return(0);
}
//+------------------------------------------------------------------+


void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9) {
如果(ObjectFind(nm)<0)ObjectCreate(nm, OBJ_LABEL, 0, 0,0)。
ObjectSetText(nm, tx, fs)。
ObjectSet(nm, OBJPROP_COLOR, cl)。
ObjectSet(nm, OBJPROP_XDISTANCE, xd)。
ObjectSet(nm, OBJPROP_YDISTANCE, yd)。
ObjectSet(nm, OBJPROP_CORNER, cr)。
ObjectSet(nm, OBJPROP_FONTSIZE, fs)。
}




doubleiMA( string symbol, inttimeframe, int period, int ma_shift, int ma_method, int applied_price, int shift)

我还没有听说过时间框架13的消息