Vous devez passer un PRIX à la fonction, autour duquel les ordres en attente seront recherchés.
En plus de ce prix, vous devez passer deux variables:
J'abandonne, avez-vous un conseiller expert prêt à l'emploi qui imprime les prix de ces ordres en attente que j'ai montrés avec des flèches dans la capture d'écran ?
Je ne comprends pas pourquoi cette fonction fonctionne sans passer de prix.
int TotalGridBuyOrders=0;
Print(__FUNCTION__);
for(int i=OrdersTotal()-1;i>=0;i--) // returns the number of current ordersif(m_order.SelectByIndex(i)) // selects the pending order by index for further access to its propertiesif(m_order.Symbol()==m_symbol.Name() && m_order.Magic()==m_magic && m_order.OrderType()==ORDER_TYPE_BUY_STOP)
TotalGridBuyOrders++;
Print("Количество buy ордеров grid ",TotalGridBuyOrders);
if(TotalGridBuyOrders>=1)
{
grid_buy_price_memory=m_order.PriceOpen();
Print("Цена ближайшего buy grid ордера: ",grid_buy_price_memory);
J'abandonne, n'avez-vous pas un conseiller expert prêt à l'emploi qui produit une impression des prix de ces ordres que j'ai montrés avec des flèches dans la capture d'écran ?
Je vous ai donné une fonction toute prête. Vous devez y passer :
J'abandonne, n'avez-vous pas un conseiller expert prêt à l'emploi qui produirait une impression des prix de ces ordres en attente que j'ai montrés avec des flèches dans la capture d'écran ?
Je ne comprends pas pourquoi cette fonction fonctionne sans envoyer de prix.
? ??
Vous montrez un code inapplicable - du moins il ne compile pas - parce qu'il a une mauvaise correspondance entre les parenthèses ouvrantes et fermantes. Et deuxièmement = logique brisée.
Vous montrez un code inapplicable - du moins, il ne compile pas - parce qu'il présente une mauvaise correspondance entre les parenthèses ouvrantes et fermantes. Et deuxièmement = logique brisée.
J'ai réécrit votre code.
Mais il génère des ordres en attente très éloignés du prix.
void TradeMode3()
{
price_nearest_buy_stop = 0;
price_nearest_sell_stop = 0;
double diff_buy_stop = DBL_MAX;
double diff_sell_stop = DBL_MAX;
for(int i=OrdersTotal()-1;i>=0;i--) // returns the number of current ordersif(m_order.SelectByIndex(i)) // selects the pending order by index for further access to its propertiesif(m_order.Symbol()==m_symbol.Name() && m_order.Magic()==m_magic)
{
if(m_order.OrderType()==ORDER_TYPE_BUY_STOP)
{
if(m_order.PriceOpen()-price1>0.0 && m_order.PriceOpen()-price1<diff_buy_stop)
{
diff_buy_stop = m_order.PriceOpen()-price1;
price_nearest_buy_stop = m_order.PriceOpen();
}
Print("buy : ",price_nearest_buy_stop);
return;
}
elseif(m_order.OrderType()==ORDER_TYPE_SELL_STOP)
{
if(price1-m_order.PriceOpen()>0.0 && price1-m_order.PriceOpen()<diff_sell_stop)
{
diff_sell_stop = price1-m_order.PriceOpen();
price_nearest_sell_stop = m_order.PriceOpen();
}
Print("sell : ",price_nearest_sell_stop);
return;
}
}
}
Supposons que j'ai un cadre temporel actuel M1, j'ai besoin de connaître l'heure de la dernière barre N de la barre donnée de n'importe quelle TF supérieure, l'heure peut ne pas être de 60 minutes, mais de 45 ou toute autre heure, et en plus il y a les week-ends, j'ai besoin de connaître la date de la dernière barre de la TF actuelle de n'importe quelle TF.
Vous devez passer un PRIX à la fonction, autour duquel les ordres en attente seront recherchés.
En plus de ce prix, vous devez passer deux variables:
J'abandonne, avez-vous un conseiller expert prêt à l'emploi qui imprime les prix de ces ordres en attente que j'ai montrés avec des flèches dans la capture d'écran ?
Je ne comprends pas pourquoi cette fonction fonctionne sans passer de prix.
? ??
J'abandonne, n'avez-vous pas un conseiller expert prêt à l'emploi qui produit une impression des prix de ces ordres que j'ai montrés avec des flèches dans la capture d'écran ?
Je vous ai donné une fonction toute prête. Vous devez y passer :
Qu'est-ce que vous ne comprenez pas ?
J'abandonne, n'avez-vous pas un conseiller expert prêt à l'emploi qui produirait une impression des prix de ces ordres en attente que j'ai montrés avec des flèches dans la capture d'écran ?
Je ne comprends pas pourquoi cette fonction fonctionne sans envoyer de prix.
? ??
Vous montrez un code inapplicable - du moins il ne compile pas - parce qu'il a une mauvaise correspondance entre les parenthèses ouvrantes et fermantes. Et deuxièmement = logique brisée.
Vous montrez un code inapplicable - du moins, il ne compile pas - parce qu'il présente une mauvaise correspondance entre les parenthèses ouvrantes et fermantes. Et deuxièmement = logique brisée.
J'ai réécrit votre code.
Mais il génère des ordres en attente très éloignés du prix.
J'ai réécrit votre code.
Mais il donne des pendentifs plus éloignés du prix
Les impressions doivent venir après la boucleOrdersTotal.
Et qu'est-ce que le prix1 ? Comment l'obtenir ?Et dans cette version, il imprime tous les disponibles
Les impressions doivent venir après la boucleOrdersTotal.
Et qu'est-ce que le prix1 ? Comment l'obtenir ?Et dans l'en-tête de l'EA j'ai écrit
Si tout est correct, voici la variante finale
Tout semble fonctionner. Dites-moi s'il y a des erreurs. Merci beaucoup.
Veuillez m'aider à résoudre ce problème.
Supposons que j'ai un cadre temporel actuel M1, j'ai besoin de connaître l'heure de la dernière barre N de la barre donnée de n'importe quelle TF supérieure, l'heure peut ne pas être de 60 minutes, mais de 45 ou toute autre heure, et en plus il y a les week-ends, j'ai besoin de connaître la date de la dernière barre de la TF actuelle de n'importe quelle TF.
Comment le mettre en œuvre ?
Et dans l'en-tête du conseiller, il est dit que
Et si tout est correct, voici la variante finale
Tout semble fonctionner. Dites-moi s'il y a des erreurs. Merci beaucoup.
Avant la ligne
price1=m_symbol.Bid();vous devez mettre à jour les citations :