Lizaku: Bonjour ! Existe-t-il un robot basé sur l'indicateur Alligator + EMA (233) + Stochastique ? Si vous pouvez me donner un lien . Et quelle est votre opinion sur cette stratégie ?
La moyenne mobile est clairement inutile ici, car l'Alligator est déjà composé de trois moyennes mobiles. Il reste donc Alligator + Stochastic :
Comment vérifier dans le script/conseiller le fait de la fin du calcul de l'indicateur, lequel d'entre eux est appelé ? Jusqu'à présent, j'ai dû mettre Sleep(), mais j'ai perdu une demi-journée à ne pas comprendre pourquoi les valeurs des tampons sont nulles...
Aleksey Vyazmikin: Comment puis-je vérifier dans le script/conseiller si le calcul de l'indicateur est terminé et lequel d'entre eux est appelé? Jusqu'à présent, j'ai dû mettre Sleep(), mais j'ai perdu une demi-journée à ne pas comprendre pourquoi les valeurs des tampons sont nulles...
J'utilise le cycle suivant
int n = 0;
do
{
// Пытаемся получить нужное значение;if(значение не получено)
{
n++;
Sleep(100);
}
}
while(значение не получено && n < 7 && !IsStopped());
Merci. J'espérais qu'il y avait un outil standard pour cela, je ne comprends pas pourquoi les tampons devraient être remplis de zéros et ensuite les valeurs calculées y être placées - cela donnerait une erreur de copie de tampon et tout irait bien...
Merci. J'espérais qu'il y avait un outil interne pour cela, je ne vois pas pourquoi les tampons devraient être remplis de zéros et ensuite les valeurs calculées y être placées - cela donnerait une erreur de copie de tampon et ce serait bien...
J'ai des outils internes, j'ai essayé une fois de le comprendre, mais en vain. Je ne me souviens même plus maintenant dans quelle section de la documentation il est mentionné. Quelque chose à voir avec la synchronisation, si je me souviens bien.
Bonjour, je suis en train d'écrire un indicateur basé sur des lignes de Bollinger à 5 bandes, comme étape finale j'ai commencé à écrire des conditions pour former un motif par rapport aux lignes de l'indicateur, mais pendant le test j'obtiens 2 variantes : soit l'alerte se ferme d'elle-même, soit rien ne se passe. En voici un fragment :
Pouvez-vous me dire ce qui peut être corrigé ici, s'il y a quelque chose à corriger ?
intOnCalculate (constint rates_total, // размер входных таймсерий constint prev_calculated, // обработано баров на предыдущем вызове constdatetime& time[], // Timeconstdouble& open[], // Open constdouble& high[], // High constdouble& low[], // Low constdouble& close[], // Close constlong& tick_volume[], // Tick Volume constlong& volume[], // Real Volume constint& spread[]) // Spread
{
//---- //--- переменныеint pos; // позицияstaticdatetime prevtime = 0;
int shift1;
int shift2;
int shift3;
string pattern, period;
int setPattern = 0;
int alert = 0;
double O, O1, O2, C, C1, C2, L, L1, L2, H, H1, H2;
//----//---- //--- check for bars count - проверка колчества баровif(rates_total<ExtPlotBegin)
return(0);
//--- начало вычисленияif(prev_calculated>1) pos=prev_calculated-1;
else pos=0;
//--- главный циклfor(int i = pos ; i < rates_total;i++)
{
int shift = 0;
shift1 = shift + 1;
shift2 = shift + 2;
shift3 = shift + 3;
O = open[shift1];
O1 = open[shift2];
O2 = open[shift3];
H = high[shift1];
H1 = high[shift2];
H2 = high[shift3];
L = low[shift1];
L1 = low[shift2];
L2 = low[shift3];
C = close[shift1];
C1 = close[shift2];
C2 = close[shift3];
//--- middle line
ExtMLBuffer[i]=SimpleMA(i,ExtBandsPeriod,close);
//--- calculate and write down StdDev
ExtStdDevBuffer[i]=StdDev_Func(i,close,ExtMLBuffer,ExtBandsPeriod);
//--- upper line
ExtTLBuffer[i]=ExtMLBuffer[i]+ExtBandsDeviations*ExtStdDevBuffer[i];
//--- mediumH line
ExtMDHBuffer[i]=ExtMLBuffer[i]+ExtBandsDeviationsM*ExtStdDevBuffer[i];
//--- mediumL line
ExtMDLBuffer[i]=ExtMLBuffer[i]-ExtBandsDeviationsM*ExtStdDevBuffer[i];
//--- lower line
ExtBLBuffer[i]=ExtMLBuffer[i]-ExtBandsDeviations*ExtStdDevBuffer[i];
// Импульсная свеча от нижней границы Боллинджераif(((O <= H) && (H <= ExtMDLBuffer[i])) && ((L >= C) && (C <= ExtBLBuffer[i])))
{
Alert("Pin up!");
PlaySound ("UpperBandAlert.wav");
}
Sleep(5000);
}
//---- OnCalculate done. Return new prev_calculated. Расчет закончен, возврат к новым предыдущим барамreturn(rates_total);
}
//+-
Volume de la première position =0.1, dernière =0.2, comment puis-je obtenir le volume de la dernière position =0.2 ?
C'est le cas dans le compte de couverture :
double Lot_pos_b()
{
int total=0;
double lot=0;
for(int i=PositionsTotal()-1;i>=0;i--)
if(m_position.SelectByIndex(i)) // selects the position by index for further access to its propertiesif(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==m_magic)
if(m_position.PositionType()==POSITION_TYPE_BUY)
{
lot=m_position.Volume();
}
//---return(lot);
}
Sur un compte de compensation, comment puis-je obtenir le lot ? Cette fonction renvoie 0,3 au lieu de 0,2.
Bonjour ! Existe-t-il un robot basé sur l'indicateur Alligator + EMA (233) + Stochastique ? Si vous pouvez me donner un lien . Et quelle est votre opinion sur cette stratégie ?
La moyenne mobile est clairement inutile ici, car l'Alligator est déjà composé de trois moyennes mobiles. Il reste donc Alligator + Stochastic :
Comment puis-je vérifier dans le script/conseiller si le calcul de l'indicateur est terminé et lequel d'entre eux est appelé? Jusqu'à présent, j'ai dû mettre Sleep(), mais j'ai perdu une demi-journée à ne pas comprendre pourquoi les valeurs des tampons sont nulles...
J'utilise le cycle suivant
J'utilise un cycle comme celui-ci.
Merci. J'espérais qu'il y avait un outil standard pour cela, je ne comprends pas pourquoi les tampons devraient être remplis de zéros et ensuite les valeurs calculées y être placées - cela donnerait une erreur de copie de tampon et tout irait bien...
Merci. J'espérais qu'il y avait un outil interne pour cela, je ne vois pas pourquoi les tampons devraient être remplis de zéros et ensuite les valeurs calculées y être placées - cela donnerait une erreur de copie de tampon et ce serait bien...
J'ai des outils internes, j'ai essayé une fois de le comprendre, mais en vain. Je ne me souviens même plus maintenant dans quelle section de la documentation il est mentionné. Quelque chose à voir avec la synchronisation, si je me souviens bien.
Bonjour, je suis en train d'écrire un indicateur basé sur des lignes de Bollinger à 5 bandes, comme étape finale j'ai commencé à écrire des conditions pour former un motif par rapport aux lignes de l'indicateur, mais pendant le test j'obtiens 2 variantes : soit l'alerte se ferme d'elle-même, soit rien ne se passe. En voici un fragment :
Pouvez-vous me dire ce qui peut être corrigé ici, s'il y a quelque chose à corriger ?
Bonjour.
Volume de la première position =0.1, dernière =0.2, comment puis-je obtenir le volume de la dernière position =0.2 ?
C'est le cas dans le compte de couverture :
Sur un compte de compensation, comment puis-je obtenir le lot ? Cette fonction renvoie 0,3 au lieu de 0,2.Bonjour.
Volume de la première position =0.1, dernière =0.2, comment puis-je obtenir le volume de la dernière position =0.2 ?
Dans un compte de couverture, c'est comme ça :
Dans le compte de compensation, comment obtenir le volume du lot ? Cette fonction renvoie 0,3 au lieu de 0,2.Visualisez les transactions appartenant à la position et voyez leur volume.
Il suffit de désimprimer toutes les transactions trouvées d'une position (propriétés de chaque position) et de trouver ce que l'on peut y chercher.