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

 
edyuson:

我不是在责备你,这不是我的难题。我只是找到了一个类似的算法,我需要它,并且正在努力完成它,就像我需要它一样。https://www.mql5.com/ru/code/9927,我漏掉了什么,我留下了什么。

我想要它0.01,0.01,0.01; 0.02,0.02,0.02; 0.04,0.04,0.04; 0.08,0.08,0.08......

有些人通过数组来实现
 
YOUNGA:
有些人通过一个数组来实现


像这样。

double mas[3];
int q;
int w;

for (int z=OrdersHistoryTotal()-1; z>0; z--)
{
 OrderSelect(z, SELECT_BY_POS, MODE_HISTORY);
 if (OrderSymbol()==Symbol())
 {
  if (OrderProfit()>0 || q>=3) break;
  if (OrderProfit()<0)
  {
  mas[q]=OrderLots();
  q++;
  }
 }
}
if (mas[0]<0 && mas[1]<0 && mas[2]<0) w=1; //Ваше условие
 

你好!

人们,你能告诉我如何在启动一个指标时检查一个货币对是否可用吗?

我已经厌烦了与这群人的斗争。

以下是代码。

[CODE]

extern string CurrencyPair = "";
string gsSymbol, gsIndiName;

bool bIndicatorError;

...

int start() {

if (StringLen(CurrencyPair) == 0)
gsSymbol = Symbol();

else

gsSymbol = CurrencyPair;

Comment(MarketInfo(gsSymbol, MODE_TRADEALLOWED)); // ЗАКОВЫКА ЗДЕСЬ, это чудо всегда возвращает 0.0000000 при старте терминала. Если же потом открыть свойства индикатора и даже ничего не поправлять в параметрах, то возвращает 1.000000

if (!MarketInfo(gsSymbol, MODE_TRADEALLOWED)) {
Alert(gsIndiName, ": Trade is not allowed for symbol [", gsSymbol,"]");
bIndicatorError = true;
return(-1);
}

}

[CODE]

也许有一个更简单、更可靠的方法。

总的来说,我不明白你怎么能用一种基本功能可以工作的语言编写程序,然后又不工作了。

 
你能告诉我是否有可能制作一个可定制参数的脚本吗?我想我在什么地方见过一个脚本,它在运行时提示你输入参数。
 
sss2019:
你能告诉我是否有可能制作一个可定制参数的脚本吗?我想我在什么地方见过一个脚本,它在运行时提示你输入参数。
在脚本中使外部参数成为extern
 
artmedia70:
使脚本中的外部参数成为外部参数


我已经制定了参数

extern string StartTime = "2011.01.01";
extern string EndTime = "2011.01.25";

但由于某些原因,该脚本在执行前没有显示它们的设置。

 
Dobr:


像这样。

double mas[3];
int q;
int w;

for (int z=OrdersHistoryTotal()-1; z>0; z--)
{
 OrderSelect(z, SELECT_BY_POS, MODE_HISTORY);
 if (OrderSymbol()==Symbol())
 {
  if (OrderProfit()>0 || q>=3) break;
  if (OrderProfit()<0)
  {
  mas[q]=OrderLots();
  q++;
  }
 }
}
if (mas[0]<0 && mas[1]<0 && mas[2]<0) w=1; //Ваше условие
0.01,0.02,0.04,0.08,0.16...我需要它0.01,0.01,0.01; 0.02,0.02,0.02; 0.04,0.04,0.04; 0.08,0.08,0.08......
 
sss2019:


我制定了参数

但由于某些原因,该脚本在执行前没有显示它们的设置

https://docs.mql4.com/ru/basis/preprosessor/compilation
 
edyuson:
0.01, 0.02, 0.04, 0.08, 0.16...我需要它0.01,0.01,0.01; 0.02,0.02,0.02; 0.04,0.04,0.04; 0.08,0.08,0.08......


我写了EXAMPLE...;)

这里有一个更准确的版本。

double mas[3]={0,0,0};
int q=0;
int w=0;
int z=0;
for (z=OrdersHistoryTotal()-1;z>0; z--)
{
 OrderSelect(z, SELECT_BY_POS, MODE_HISTORY);
 if (OrderSymbol()==Symbol())
 {
  if (OrderProfit()>0 || q==3) break;
  if (OrderProfit()<0)
  {
  mas[q]=OrderLots();
  q++;
  }
 }
}
if (mas[0]==lot && mas[1]==lot && mas[2]==lot) w=1;
if (w==1) lot=OrderLots()*2;
 
ForexTader:


总的来说,我不明白你怎么能用一种语言写出基本功能可以工作的程序,然后又不工作了。


你可以尝试将一部分支票从init转移到start。你还可以检查终端的状态,等等。