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

 

乡亲们,关于如何做的建议...例子 - 在10条和3条有一个事件,即有A=Close[10]和B=Close[3],我期望在3条的7(10-3)条之后有下一个事件,即4条之后。我怎样才能在评论中显示这个预期事件的日期和时间?

 
kon12:

乡亲们,关于如何做的建议...例子 - 在10条和3条有一个事件,即有A=Close[10]和B=Close[3],我期望在3条的7(10-3)条之后有下一个事件,即4条之后。我怎样才能在评论中显示这个预期事件的日期和时间?

Comment( TimeToStr(Time[0]+PeriodSeconds()*3/* на 3 свечи вперёд */, TIME_DATE|TIME_MINUTES) );
 
Taras Slobodyanik:

它可能对钥匙也有效。

对于CHARTEVENT_MOUSE_MOVE事件,字符串参数sparam包含一个代表关键状态信息的数字。

描述

1

鼠标左键的状态

2

鼠标右键的状态

3

SHIFT键状态

4

CTRL键的状态

5

鼠标中键的状态

6

鼠标第一个附加按钮的状态

7

鼠标第二个附加按钮的状态


这在mt4上能行吗!?因为帮助mt5!?

我是否也可以通过按(contrl+A)来获得一段代码,例如警报或打印,因为我看不到或不明白我的警报按和如何突出组合的区别!?
 
LRA:

你的术语是抓住,拿走,工作掉。这里有另一种看问题的方式。我想通过按Ctrl-A键使斐波那契线出现在活动图表上。如果你再按一次,它们就会消失。我可以用你的功能做一个专家顾问--但它必须挂在图表上。我正在写一个剧本。

我给它指定了所需的键盘快捷方式 !试试吧!!!。


是的,一切都很好,只是你需要对EA和脚本中的变量进行绑定,并在某些情况下进行模拟按压,正如你所理解的,在绑定EA和脚本时,会有额外的麻烦!

我知道可以给脚本一个快捷方式,但它对我不起作用!

 
Vitaly Muzichenko:

谢谢你!

 
Игорь:

它能在MT4上工作吗!?因为MT5参考!?

我没有看到或理解我按下按钮时的警报和我按下的组合之间的区别!我不知道。

那么,谁会帮助那些 "破坏者 "呢!我感觉每个人都死了。

 
double mZz1[][8];
double mZz2[][8];
double mZz3[][8];
double mZz4[][8];   
double mZz5[][8];  

for (int a=1;a<6;a++)
   {
   double mMass[][8]==mZzа[][8];
   далее другой код по обработке массивов;
   }

我明白这段代码是错误的,请建议或纠正代码,将mZz逐一复制或粘贴到mMass[][8]中。

 
Игорь:

我明白这段代码是错误的,请建议或纠正代码,将mZz逐一复制或粘贴到mMass[][8]中。

试试这个脚本
//#property strict
double mMass[16][8]; // Или задать колич-во элементов или использовать ArrayResize
double mZzа[][8]={3,7,4,9,2,5}; // Для простоты зададим
// Если массив описать внутри цикла, то ...
void start() 
{
   for (int a=1;a<6;a++) mMass[0][a]=mZzа[0][a];

   // Обработка
   string s;
   for (a=1, s="";a<6;a++) s+="  "+(string)mMass[0][a];
   Alert(s);
}
 
STARIJ:
试试这个脚本

         case 55:{Stat();bar0=0;break;}
        }
//+------------------------------------------------------------------+
//|                  Сбор статистики                      |
//+------------------------------------------------------------------+
void Stat()
    {
    for(int a=1;a<6;a++){if(a==2){Statistic(mZz2,namZz2);}if(a==3){Statistic(mZz3,namZz3);}if(a==4){Statistic(mZz4,namZz4);}}
    }
//+------------------------------------------------------------------+
//|                     Сбор статистики                              |
//+------------------------------------------------------------------+
void Statistic(double &mMass[][],string NameZz)
    {
    int e,y0,y1,y2,y3,y4,y5,c1,c2,c3,c4,c5,d1,d2,d3,d4,d5,sving;
    if((PaintZz2==1)&&(PaintZz3==1)&&(PaintZz4==1))
    {if(NameZz==namZz2){printf("Подождите идет расчет статистики");}}
    else
    {printf("Включите для расчета статистики");}return;}
//----------------------------------------------
int handle;
         for(e=2; e!=ArrayRange(mMass,0); e++){switch((int)mMass[e][7]){//собираем статистику

以下是工作代码的摘录!如何在一个无效统计中收集它,而没有中间的无效统计!?你的建议是,我需要重写整个代码,将所有的数组集合成一个,然后再从那里划出!

 
Игорь:

以下是工作代码的摘录!如何在一个无效统计中收集它,而没有中间的无效统计!?我将不得不重写整个代码,以便将所有的数组集中到一起,然后从那里开始抓取!

让我们首先考虑一下这个字符串

for(int a=1;a<6;a++){if(a==2){Statistic(mZz2,namZz2);}if(a==3){Statistic(mZz3,namZz3);}if(a==4){Statistic(mZz4,namZz4);}}

为了让我更清楚地了解它,我这样改写了它

for(int a=1;a<6;a++)
{
   if(a==2){Statistic(mZz2,namZz2);}
   if(a==3){Statistic(mZz3,namZz3);}
   if(a==4){Statistic(mZz4,namZz4);}
}

啊哈!!!。现在我开始明白了...在循环中,变量a从1变成了6。该变量的值为1、5和6时,没有任何行动。那么就

 Statistic(mZz2,namZz2);
 Statistic(mZz3,namZz3);
Statistic(mZz4,namZz4);

或以你的风格。

Statistic(mZz2,namZz2); Statistic(mZz3,namZz3); Statistic(mZz4,namZz4);

结果将是一样的,但会运行得更快。

现在你需要摆脱Statistic函数吗? 你需要连续写三次它的主体,将三个部分中的形式参数 替换为实际参数,并删除重复的变量声明。总的代码会有点长,但执行起来会更快。抛出print()是有道理的--究竟谁会在这个时候翻看消息日志呢?- 或者用Alert()代替它,在屏幕上显示。 另外,有一个变量namZz2--它的值会改变吗?