[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 453

 

Bonjour !

Si un ordre en attente est déclenché par un script, comment puis-je détacher ce script de la fenêtre de l'outil ?

Merci d'avance.

 
baltik >>:

НЕТ

Скрипт при исполнении делает файл с историей в папку ексерт\филес\ имя файла (это номер счета)

Все очень просто скрипт на 3 терминалах исполняется скажем в 6 утра автоматом

Значит нам не надо открывать терминалы - отрываем базу и новые данные уже в ней подхвачены готовые к анализу (это уже реализовано)

% деятельности с посчитанными свопами, сводными таблицами и графиками и т.д.

Aucun script ne peut ouvrir le terminal !

Donc, si vous voulez qu'il fonctionne, il doit être sur un terminal ouvert et connecté au réseau. Il fonctionnera au moment voulu et enregistrera les données. Mais les bornes doivent toujours être allumées.

 
Aleks25 >>:

Добрый день!

Как сделать, если сработал отложенный скриптом ордер, чтобы этот скрипт отсоединить от окна инструмента?

Заранее благодарен.

le script est exécuté une fois sur le graphique et ne nécessite pas de déconnexion manuelle.

 
sergeev >>:

скрипт выполняется на графике один раз и не требует ручного отсоединения.

Malheureusement, s'il n'est pas déconnecté de la fenêtre, lorsque l'ordre précédent est fermé, il ouvre l'ordre suivant.

 
s'agit-il d'un script ou d'un expert ?
 
Par code un script, mais se trouve dans le répertoire des experts.
 

Voici son code

Déplacement de l'ordre en attente en cas de changement de prix


//--------------------------------------------------------------------
extern double OTSTUP_BUY = 7 ;
extern double TakeProfit = 100 ;
//extern double BuyStop = 0 ;
//extern double StopLoss = 0 ;
extern double Lots = 0.01 ;
//extern double TrailingStop = 21 ;

double min =100000 ;
double
lmax, // Prix seuil, après qu'il soit passé
// nous considérons la vente (abs)
lmin, // Même chose pour Buy
Lot ;

int Count=0 ;
int total=0 ;
int Ticket=0 ; // Variable globale.
//--------------------------------------------------------------------
int init() // Spécial init()

{
int total=OrdersTotal() ; // uniquement les ordres ouverts
string Symbol1=Symbol() ;
double metka=0 ;
for(int pos=0;pos<total;pos++)
{
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==false) continue ;
{
if(OrderSymbol()==Symbol())
{
metka=1 ;
Alert("Order #", OrderTicket(), " in ", OrderSymbol()) ;

}
else
{
}
}

}

if(metka==0 )
// if(metka==0 && UROVEN>=Ask)

{

double bid =MarketInfo(Symbol(),MODE_BID) ; // Demande de valeur Bid
double ask =MarketInfo(Symbol(),MODE_ASK) ; // Demande de valeur Ask
double min =MarketInfo(Symbol(),MODE_ASK) ; // Demande de valeur Ask
double point =MarketInfo(Symbol(),MODE_POINT)//Point d'interrogation
OrderSend(Symbol(),OP_BUYSTOP,Lots,bid+OTSTUP_BUY*Point,3,bid-1*Point,bid+TakeProfit*Point) ;
int Ticket=OrderTicket() ;
//OrderSend(Symbol(),OP_BUYSTOP,Lots,BuyStop,3,StopLoss,TakeProfit, "Bye Stop 1") ;
Alert (Ticket) ; // Message d'erreur
// Alert (Symbol()," ",OP_BUYSTOP," ",0.01," ",ask+10*Point," ",3," ",ask-35*Point," ",ask+35*Point) ;
Alert (GetLastError()) ;
}


return ; // Quitter init()
}

//--------------------------------------------------------------------
int start() // Spécial. function start()
{
if(min>Bid) min=Bid ;
{ // Compter le prix min




int total=OrdersTotal() ; // uniquement les ordres ouverts
string Symbol1=Symbol() ;
for(int pos=0;pos<total;pos++)
{
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==false) continue ;
{
if(OrderSymbol()==Symbol())
{
Alert("Ordre #", OrderTicket(), " in ", OrderSymbol()) ;
Alert (min) ;
OrderModify(OrderTicket(),min+OTSTUP_BUY*Point,min-1*Point,min+TakeProfit*Point,0);//Modify
Alert (GetLastError()) ;
Alert(Symbol(), "",OrderTicket()), OrderTicket()," ",min+OTSTUP_BUY*Point," ",min-1*Point," ",min+TakeProfit*Point," ",0) ;
}
}
}



}
return ; // Quitter init()
}

//--------------------------------------------------------------------
int deinit() // Spécial. f-iia deinit()
{
// Alerte ("Deinit() f-iia triggered on unloading") ; // Message
return ; // Quitter deinit()
}
//--------------------------------------------------------------------

 

chaîne de caractères iii[] ;

iii[0] = "1" ;
iii[1] = "2" ;
iii[2] = "3" ;

MessageBox(iii[0]) ;
MessageBox(iii[1]) ;
MessageBox(iii[2]) ;
produit le nombre 3 trois fois ! au lieu des 1, 2, 3.... appropriés WTF ?

Merci !

 
Je suppose que le problème est que je n'ai pas spécifié le nombre d'éléments du tableau, mais que se passe-t-il si le nombre d'éléments est initialement inconnu et que le tableau est rempli dans la boucle ? (dans mon cas, lors de la lecture d'un fichier)
 
mrddt >>:
догадываюсьчто проблема в том что я не указал кол-во элементов в массиве. а что делать если кол-во элементов изначально неизвесно и массив заполняется в цикле? (в моём случае при чтении из файла)

ArrayResize