Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Quelle est la pertinence de trader sur plusieurs symboles et / ou horizons temporels au sein d'un conseiller expert ?
Je suis actuellement assis et je réfléchis - devrais-je poster symbol_lib et un modèle de conseiller expert, conçu dans ce but précis =)
et je pense qu'il n'y a pas besoin... Si je négocie sur différents comptes, je devrai toujours utiliser plusieurs terminaux, et si je négocie sur un seul compte, j'ouvrirai simplement plusieurs fenêtres. Et il y aurait moins de confusion, il semble...
Il sera intéressant d'entendre les opinions et les arguments à leur sujet ;)
int CurPrice_p=Bid/Point; //текущая цена в пунктах int CurSLoss=OrderStopLoss( )/Point; //текущий стоплосс в пунктах int TS=40; //значение трейлингстопа в пунктах if(TS>=5) { int TStep=2; //минимальный шаг трейлинг стопа if(TStep<1) TStep=1; //проверка шага трейлинга { if(MathAbs(CurPrice_p-CurSLOss)>=TS+TStep) { if(CurPrice_p>CurSLOss) { double NewSLoss=(CurPrice_p-TS)*Point; изменить уровень стоплосс ордера на новый } if(CurPrice_p>CurSLOss) { NewSLoss=(CurPrice_p+TS)*Point; изменить уровень стоплосс ордера на новый } } } }c'est une idée ... c'est plus qu'une pensée - c'est une idée ;))
Le lendemain, je passerai en revue les erreurs qui ont été collectées par le conseiller expert et je réfléchirai à la mise en œuvre de fonctions de trading. Je vais partager avec vous la semaine prochaine ;)
Dans quelle mesure est-il pertinent d'effectuer des transactions sur plusieurs sceaux et/ou horizons temporels au sein d'un même conseiller expert ?
Suite au vote ( 1 contre (komposter), 0 en faveur, le reste s'est abstenu ), j'ai décidé de ne pas poster de déchets de trading multi-symboles dans ce fil =)
Si quelqu'un est toujours intéressé, écrivez et partagez la bibliothèque ;-|.
A utiliser :
1. Inscrivez ce fichier avec l'extension mqh, Tracert.mqh dans le dossier experts\include\
2. Ajouter la ligne #include <Tracert.mqh>
"http://*****************"
3. Insérer la fonction SetTrace() au tout début du bloc start() ;
int start() { int ticket, total,totalExpert ; //------------------------------------------------------ //pour simplifier et accélérer le code, sauvegardons les données des indicateurs nécessaires // dans des variables temporaires SetTrace() ;4. Après l'exécution de l'EA, ouvrez le fichier et obtenez quelque chose comme ceci :
Le code de l'utilitaire lui-même :
//+------------------------------------------------------------------+ //| Tracert.mq4 | //| Rosh | //| http://forexsystems.ru/phpBB/index.php | //+------------------------------------------------------------------+ #property copyright "Rosh" #property link "http://forexsystems.ru/phpBB/index.php" //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ double tr_AOPLong,tr_AOPShort; double tr_LongLots,tr_ShortLots; int tr_CurrLongOrders,tr_CurrShortOrders; int tr_Total,tr_Counter; int tr_PrevLongOrders,tr_PrevShortOrders; int tr_CurrTotalOpenedOrders,tr_PrevTotalOpenedOrders; double tr_CurrBalance,tr_PrevCurrBalance; color tr_ProfitColor=Lime, tr_LossColor=DeepPink,tr_LongAOPColor=Blue,tr_ShortAOPColor=Red, tr_CurrCloseColor; int tr_CloseLabelArrow=108, tr_AOPLabelArrow=159; bool tr_CloseLong,tr_CloseShort; double tr_CloseLabelPrice; int tr_CloseLabelShift=20; int tr_CounterCloseLabel=0,tr_CounterAOPLabel=0; int tr_Bars; void SetTrace() { //---- if (IsTesting()&&(tr_Bars!=Bars)) { tr_CloseLong=false; tr_CloseShort=false; tr_AOPLong=0.0; tr_AOPShort=0.0; tr_LongLots=0.0; tr_ShortLots=0.0; tr_CloseLabelShift=iATR(NULL,0,50,1)*3.0/10.0/Point; if (tr_CurrBalance==0.0) { tr_CurrBalance=AccountBalance(); tr_PrevCurrBalance=AccountBalance(); } //----------------Проверка открытых позиций --------------------------- tr_CurrLongOrders=0; tr_CurrShortOrders=0; tr_CurrTotalOpenedOrders=0; tr_Total=OrdersTotal(); if (tr_Total>0)// есть открытые позиции { for (tr_Counter=0;tr_Counter<tr_Total;tr_Counter++)// подсчет открытых позиций { OrderSelect(tr_Counter, SELECT_BY_POS, MODE_TRADES); if (OrderType()==OP_BUY) { tr_CurrLongOrders++; tr_AOPLong=tr_AOPLong+OrderLots()*OrderOpenPrice(); tr_LongLots=tr_LongLots+OrderLots(); } if (OrderType()==OP_SELL) { tr_CurrShortOrders++; tr_AOPShort=tr_AOPShort+OrderLots()*OrderOpenPrice(); tr_ShortLots=tr_ShortLots+OrderLots(); } }// подсчет открытых позиций //--------------- усреднение --------------------- if (tr_CurrLongOrders>0) tr_AOPLong=tr_AOPLong/tr_LongLots; if (tr_CurrShortOrders>0)tr_AOPShort=tr_AOPShort/tr_ShortLots; //--------------- усреднение --------------------- if (tr_AOPLong>0.0) { ObjectCreate("AOP"+tr_CounterAOPLabel,OBJ_ARROW,0,Time[1],tr_AOPLong);// не совсем корректно, но пока пойдет ObjectSet("AOP"+tr_CounterAOPLabel,OBJPROP_ARROWCODE,tr_AOPLabelArrow); ObjectSet("AOP"+tr_CounterAOPLabel,OBJPROP_COLOR,tr_LongAOPColor); tr_CounterAOPLabel++; } if (tr_AOPShort>0.0) { ObjectCreate("AOP"+tr_CounterAOPLabel,OBJ_ARROW,0,Time[1],tr_AOPShort);// не совсем корректно, но пока пойдет ObjectSet("AOP"+tr_CounterAOPLabel,OBJPROP_ARROWCODE,tr_AOPLabelArrow); ObjectSet("AOP"+tr_CounterAOPLabel,OBJPROP_COLOR,tr_ShortAOPColor); tr_CounterAOPLabel++; } // Print("Long=",tr_CurrLongOrders," tr_AOPLong=",tr_AOPLong," *** Short=",tr_CurrShortOrders," tr_AOPShort=",tr_AOPShort); tr_CurrTotalOpenedOrders=tr_CurrLongOrders+tr_CurrShortOrders; if ((tr_CurrTotalOpenedOrders!=tr_PrevTotalOpenedOrders)||(tr_PrevLongOrders!=tr_CurrLongOrders)||(tr_PrevShortOrders!=tr_CurrShortOrders)) // изменилось колчиство ордеров в рынке { if (tr_PrevLongOrders>tr_CurrLongOrders) // изменилось число ордеров в Long { tr_CloseLong=true; tr_CloseLabelPrice=High[1]+tr_CloseLabelShift*Point; } if (tr_PrevShortOrders>tr_CurrShortOrders) // изменилось число ордеров в Short { tr_CloseShort=true; tr_CloseLabelPrice=Low[1]-tr_CloseLabelShift*Point; } tr_PrevLongOrders=tr_CurrLongOrders; tr_PrevShortOrders=tr_CurrShortOrders; tr_PrevTotalOpenedOrders=tr_CurrTotalOpenedOrders; } }// есть открытые позиции //---------------- Проверка изменения Баланса tr_CurrBalance=AccountBalance(); if (tr_CurrBalance!=tr_PrevCurrBalance)// проверка изменения Balance { if (tr_CurrBalance-tr_PrevCurrBalance>0.0) tr_CurrCloseColor=tr_ProfitColor; else tr_CurrCloseColor=tr_LossColor; tr_PrevCurrBalance=tr_CurrBalance; //------------------ установка Метки закрытия -------------------- ObjectCreate("Close"+tr_CounterCloseLabel,OBJ_ARROW,0,Time[1],tr_CloseLabelPrice); ObjectSet("Close"+tr_CounterCloseLabel,OBJPROP_ARROWCODE,tr_CloseLabelArrow); ObjectSet("Close"+tr_CounterCloseLabel,OBJPROP_COLOR,tr_CurrCloseColor); tr_CounterCloseLabel++; //------------------ установка Метки закрытия -------------------- }// проверка изменения Balance }//(IsTesting()) //---- tr_Bars=Bars; return(0); } //+------------------------------------------------------------------+Utilisez la même chose. Il suffit de remplacer les anciens noms dans les lignes d'inludes par les nouveaux.
Les fichiers sont situés à l'adresse http://forum.viac.ru/viewtopic.php?t=2973
Pourriez-vous poster tous ces fichiers, les plus récents comme les plus anciens, quelque part sur viac ou alpari ou forexitems ou finlists - en général, là où l'on peut joindre des fichiers. Il serait également plus facile à trouver. Merci d'avance.
Pourriez-vous s'il vous plaît mettre tous ces fichiers et les fichiers récents et antérieurs quelque part sur viac ou alpari ou forexitems ou finlist - en général, là où on peut attacher des fichiers. Il serait également plus facile à trouver. Merci d'avance.
http://forum.viac.ru/viewtopic.php?t=2973
Je déplacerai les descriptions avec les instructions plus tard...
la vitesse d'essai a été multipliée par plus de 10
Il y a beaucoup de changements. Et une énorme en plus.
La tolérance d'erreur est à un tout autre niveau, l'information est plus complète, l'interface est plus conviviale ;) ...
En général, nous pouvons dire que c'est une bibliothèque absolument nouvelle =)
N'hésitez pas à l'utiliser ;)