[J'écrirai n'importe quel expert ou indicateur gratuitement. - page 60

 

Bonjour, veuillez m'aider à écrire un indicateur.

Deux moyennes mobiles sont tracées sur le graphique des prix. Des flèches et des alertes visuelles indiquent le moment du franchissement. Ceci est mis en œuvre dans l'indicateur Ma_crossover_signal_with _waw.

Nous devons modifier cet indicateur :

1. En connaissant les formules de calcul de la moyenne mobile, affichez le prix de clôture de la bougie actuelle (en cours de construction) dans la zone de travail, à laquelle se produit le croisement de la moyenne mobile opposée.

2. Affiche le pourcentage de clôture de la bougie actuelle sur la zone de travail. Par exemple, tel qu'implémenté dans l'indicateur BarTimer Final (option BarTimer).

Paramètres ajustables pour l'indicateur : méthode de calcul de la moyenne mobile (SMA, EMA...), période de la moyenne mobile. Et si possible, le timeframe : la valeur 0 s'applique au timeframe actuel, les valeurs 5, 15, 30, 60... - s'applique à M5, M15, M30, H1...

Merci.

 
matyushevskaya:

Bonjour, veuillez m'aider à écrire un indicateur.

Deux moyennes mobiles sont tracées sur le graphique des prix. Des flèches et des alertes visuelles indiquent le moment du franchissement. Ceci est mis en œuvre dans l'indicateur Ma_crossover_signal_with _waw.

Nous devons modifier cet indicateur :

1. En connaissant les formules de calcul de la moyenne mobile, affichez le prix de clôture de la bougie actuelle (en cours de construction) dans la zone de travail, à laquelle le croisement inverse de la moyenne mobile se produirait.

2. Affiche le pourcentage de clôture de la bougie actuelle sur la zone de travail. Par exemple, tel qu'implémenté dans l'indicateur BarTimer Final (option BarTimer).

Paramètres ajustables pour l'indicateur : méthode de calcul de la moyenne mobile (SMA, EMA...), période de la moyenne mobile. Et si possible, le timeframe : la valeur 0 s'applique au timeframe actuel, les valeurs 5, 15, 30, 60... - s'applique à M5, M15, M30, H1...

Merci.


Pourquoi faire quelque chose avec un indicateur regardant vers le futur
 
Bonjour à tous, aidez-moi à écrire un conseiller expert simple basé sur l'avirage mobile. Le signal d'ouverture est le suivant, lorsque la MA croise une bougie, attendez que le corps de la bougie sorte de la MA et attendez la clôture de la barre. Si la bougie a clôturé au-dessus de la MA, achetez si en dessous, alors vendez. Réglage MA SMA20
 
arkeo:
Bonjour à tous, aidez-moi à écrire un conseiller expert simple basé sur l'avirage mobile. Le signal d'ouverture est le suivant, lorsque la MA croise une bougie, attendez que le corps de la bougie sorte de la MA et attendez la clôture de la barre. Si la bougie a clôturé au-dessus de la MA, achetez si en dessous, alors vendez. Réglage MA SMA20


Vous pouvez avoir un de ces EAs dans tous les MTAs mais vous devez ajuster le paramètre de décalage comme vous le souhaitez. Je ne pense pas, tous les corps de bougies ne sont pas là. Trop paresseux pour écrire de telles bêtises ))))

 
ZZZEROXXX:


Vous ne devez régler le paramètre de décalage que lorsque vous en avez besoin. Je ne pense pas. Trop paresseux pour écrire de telles bêtises ;))

Ça vous prendra cinq minutes. Je t'enverrai le photocopieur de l'affaire que j'ai acheté pour 240 $.

 
arkeo:
en attendant la photocopieuse...
Dossiers :
 
Dima_S.:
en attendant la photocopieuse...
regarder dans la boîte aux lettres.
 

Bonjour à tous.

J'essaie de faire un rapport comme celui-ci :

Mais je suis bloqué par le fait que je ne peux pas inclure le solde du compte au moment de l'ouverture de la position dans le rapport. Pour l'instant, le code ressemble à ceci :

if(Trade_Report == TRUE)
{ int pos, handle;

double Swap_M, Profit_M, Swap_P, Profit_P, Commission;
double Source_LP[RA], Source_SP[RA], Acc_Bal_Close[RA], Acc_Bal_Open[RA];

handle = FileOpen("OrdersReport.csv",FILE_CSV|FILE_WRITE);

if(handle > 0)
{
FileWrite(handle,"Time Open"+","+"Time Close"+","+"Lots"+","
+"Balance Open"+","+"Balance Close"+","+"Profit($)"+","+"Profit(p)"+","
+"SOURCE_LP"+","+"SOURCE_SP");

for(pos = 0; pos < OrdersHistoryTotal(); pos++)
{ OrderSelect(pos,SELECT_BY_POS,MODE_HISTORY); //2

Swap_M = OrderSwap();
Profit_M = OrderProfit();
Commission = OrderCommission();
Swap_P = (OrderSwap()/10)/OrderLots();
Profit_P = (OrderProfit()/10)/OrderLots()+(OrderSwap()/10)/OrderLots();

if(OrderType() == OP_BUY && OrderMagicNumber() == Magic_Source_LP && OrderCloseTime() == TimeCurrent())
{ Source_LP[pos] = Profit_M+Swap_M+Commission;
Acc_Bal_Close[pos] = AccountBalance(); }

if(OrderType() == OP_SELL && OrderMagicNumber() == Magic_Source_SP && OrderCloseTime() == TimeCurrent())
{ Source_SP[pos] = Profit_M+Swap_M+Commission;
Acc_Bal_Close[pos] = AccountBalance(); }
//---------------------------------------------------------------------------------------------------------------------
if(OrderType() < 2)
{ FileWrite(handle,TimeToStr(OrderOpenTime(),TIME_DA TE|TIME_MINUTES)+","
+TimeToStr(OrderCloseTime(),TIME_DATE|TIME_MINUTES )+","
+DoubleToStr(OrderLots(),2)+","
+DoubleToStr(Acc_Bal_Open[pos],2)+","
+DoubleToStr(Acc_Bal_Close[pos],2)+","
+DoubleToStr(Profit_M+Swap_M+Commission,2)+","
+DoubleToStr(Profit_P+Swap_P+Commission,2)+","
+DoubleToStr(Source_LP[pos],2)+","
+DoubleToStr(Source_SP[pos],2)); }
}
FileClose(handle); //2

Quelqu'un pourrait-il me dire comment ajouter au rapport les valeurs de solde au moment de l'ouverture d'une transaction ?

 
tol64:

Quelqu'un peut-il me dire comment ajouter au rapport les valeurs du solde au moment de l'ouverture d'une transaction ?

если сделки открываются советником,
добавить значение баланса в комментарий ордера.

string comment_=DoubleToStr(AccountBalance(),2);
OrderSend(...comment_..);

затем на истории считывать баланс из комментария
double Balance_Open=StrToDouble(OrderComment());
 
KONDOR:


Merci ! C'est très agréable quand quelqu'un répond à une demande. ))

Une option élégante et simple, qu'il faut retenir. En fait, j'ai déjà résolu le problème, mais c'est un peu plus compliqué :

void OnOff_Pos_Source_LP()
{  for(int count = 0; count < OrdersTotal(); count++)
      {  OrderSelect(count, SELECT_BY_POS, MODE_TRADES);
         if (OrderType() == OP_BUY && OrderMagicNumber() == Magic_Source_LP)
            {  Pos_Source_LP = TRUE;                     // Включить флаг основной позиции
               ticket_source_LP = OrderTicket();         // Присвоить глобальной переменной тикет текущей основной позиции
               Time_OpBar_Source_LP = Time[0];           // Запомнить время открытия свечи
               Acc_Balance_Open = AccountBalance(); }    // Запомнить значение баланса на открытии позиции
      }
}

Vous pouvez donc en mémoriser autant que vous le souhaitez. Bonne chance pour tout !