[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 515

 
edyuson:

No te estoy culpando, no es mi rompecabezas. Acabo de encontrar un algoritmo similar, que necesito y estoy tratando de terminarlo, tal como lo necesito. https://www.mql5.com/ru/code/9927 me dejó fuera de lo que, me dejó en lo que.

lo quiero 0.01,0.01,0.01; 0.02,0.02,0.02; 0.04,0.04,0.04; 0.08,0.08,0.08......

algunos lo hacen a través de una matriz
 
YOUNGA:
algunos lo hacen a través de una matriz


así:

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; //Ваше условие
 

¡Hola!

Gente, ¿pueden aconsejarme cómo comprobar si un par de divisas está disponible al iniciar un indicador?

Estoy harto de pelearme con este em-ku-el.

Aquí está el código:

[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]

Quizá haya una forma más fácil y fiable.

En general, no entiendo cómo se pueden escribir programas en un lenguaje donde las funciones básicas funcionan y luego no funcionan.

 
¿Pueden decirme si es posible hacer un script con parámetros personalizables? Creo que he visto un script en algún sitio que te pide que introduzcas los parámetros cuando lo ejecutas.
 
sss2019:
¿Pueden decirme si es posible hacer un script con parámetros personalizables? Creo que he visto un script en algún sitio que te pide que introduzcas los parámetros cuando lo ejecutas.
Haz que los parámetros externos sean externos en el script
 
artmedia70:
hacer que los parámetros externos sean externos en el script


He hecho los parámetros

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

pero por alguna razón el script no muestra su configuración antes de la ejecución

 
Dobr:


así:

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... Lo necesito 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:


Hice los parámetros

pero por alguna razón el script no muestra su configuración antes de la ejecución

https://docs.mql4.com/ru/basis/preprosessor/compilation
 
edyuson:
0.01, 0.02, 0.04, 0.08, 0.16... Lo necesito 0.01,0.01,0.01; 0.02,0.02,0.02; 0.04,0.04,0.04; 0.08,0.08,0.08......


He escrito EJEMPLO... ;)

aquí hay una versión más precisa:

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:


En general, no entiendo cómo se pueden escribir programas en un lenguaje en el que las funciones básicas funcionan, y luego no lo hacen.


Puedes intentar transferir una parte de los controles de init a init. También puedes comprobar el estado del terminal, etc.