[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 298
O arquivo contém dois indicadores e o Expert Advisor no qual estou trabalhando (test-cifr), os indicadores estão trabalhando por si mesmos, mas não posso colá-los no Expert Advisor (o único propósito do Expert Advisor é produzir valores), por favor me ajude a entender por que não estão e como colá-los.
Se eu já fiz algum negócio no passado, então use a função de ordem-lucro e então resuma toda a história do negócio.
Será que alguém tem respostas para a minha pergunta?
Copie o código inteiro em seu consultor especializado
como este
//+------------------------------------------------------------------+//| Xrust.mq4 |//| Copyright 2013, MetaQuotes Software Corp. |//| http://www.metaquotes.net |//+------------------------------------------------------------------+#property copyright "Copyright 2013, MetaQuotes Software Corp."#property link "http://www.metaquotes.net"externint TimeFrame=0;//Если=0, то текушийexternstring FrApNam="Ap";//Имя линии соотв.Фракталу вверхexternstring FrDnNam="Dn";//Имя линии соотв.Фракталу внизexterncolor ClAp=Blue;//Цвет линии соотв.Фракталу вверхexterncolor ClDn=Red;//Цвет линии соотв.Фракталу вниз//-----------------------------------------------------------------------------+double FrApPrise,FrDnPrise;
//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+int init()
{
//----if(TimeFrame==0){TimeFrame=Period();}
IndicatorShortName("Factal_Level_Xrust"+TimeFrame);
FrApNam=StringConcatenate(FrApNam,TimeFrame);
FrDnNam=StringConcatenate(FrDnNam,TimeFrame);
//----return(0);
}
//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+int deinit()
{
//----ObjectDelete(FrDnNam);
ObjectDelete(FrApNam);
Comment(" ");
//----return(0);
}
//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start()
{
//----
LineAp();
LineDn();
int diap=MathRound((FrApPrise-FrDnPrise)/Point);
Comment("\n"," LineDn = ",FrDnPrise,
"\n", " LineAp = ",FrApPrise,
"\n"," diap = ",diap );
//----return(0);
}
//+------------------------------------------------------------------+//-----------------------------------------------------------------------------+// Ищет горизонтальную линию по имени перерисовывает если изменилась цена | //-----------------------------------------------------------------------------+void LineDn(){
FrDnPrise=0;
double FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_LOWER),MarketInfo(Symbol(),MODE_DIGITS));
FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS));
//Comment(FrPrise);if(ObjectFind(FrDnNam)==0){
if(ObjectGet(FrDnNam,OBJPROP_PRICE1)==FrPrise){return;}}
FrDnPrise=FrPrise;
ObjectDelete(FrDnNam);
SetHLine(ClDn,FrDnNam,FrDnPrise,0,1);
WindowRedraw();
return;}
//-----------------------------------------------------------------------------+// Ищет горизонтальную линию по имени перерисовывает если изменилась цена | //-----------------------------------------------------------------------------+void LineAp(){
FrApPrise=0;
double FrPrise=NormalizeDouble(FindNearFractal(0,TimeFrame,MODE_UPPER),MarketInfo(Symbol(),MODE_DIGITS));
FrPrise=NormalizeDouble(FrPrise,MarketInfo(Symbol(),MODE_DIGITS));
if(ObjectFind(FrApNam)==0){
if(ObjectGet(FrApNam,OBJPROP_PRICE1)==FrPrise){return;}}
FrApPrise=FrPrise;
ObjectDelete(FrApNam);
SetHLine(ClAp,FrApNam,FrApPrise,0,1);
WindowRedraw();
return;}
//-----------------------------------------------------------------------------+ // Киму Респект и уважуха !!! | //+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 07.10.2006 |//| Описание : Поиск ближайшего фрактала. Возвращает ценовой уровень. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| tf - таймфрейм ( 0 - текущий ТФ) |//| mode - тип фрактала (MODE_LOWER|MODE_UPPER) |//+----------------------------------------------------------------------------+double FindNearFractal(string sy="0", int tf=0, int mode=MODE_LOWER) {
if (sy=="" || sy=="0") sy=Symbol();
double f=0;
int d=MarketInfo(sy, MODE_DIGITS), s;
if (d==0) if (StringFind(sy, "JPY")<0) d=4; else d=2;
for (s=2; s<100; s++) {
f=iFractals(sy, tf, mode, s);
if (f!=0) return(NormalizeDouble(f, d));
}
Print("FindNearFractal(): Фрактал не найден");
return(0);
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 30.03.2008 |//| Описание : Установка объекта OBJ_HLINE горизонтальная линия |//+----------------------------------------------------------------------------+//| Параметры: |//| cl - цвет линии |//| nm - наименование ("" - время открытия текущего бара) |//| p1 - ценовой уровень (0 - Bid) |//| st - стиль линии (0 - простая линия) |//| wd - ширина линии (0 - по умолчанию) |//+----------------------------------------------------------------------------+void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) {
if (nm=="") nm=DoubleToStr(Time[0], 0);
if (p1<=0) p1=Bid;
if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_HLINE, 0, 0,0);
ObjectSet(nm, OBJPROP_PRICE1, p1);
ObjectSet(nm, OBJPROP_COLOR , cl);
ObjectSet(nm, OBJPROP_STYLE , st);
ObjectSet(nm, OBJPROP_WIDTH , wd);
}
ou
ou funções de uso
intObjectFind( string name) //Поиск объекта с указанным именемdouble ObjectGet( string name, int prop_id) //Функция возвращает значение указанного свойства объекта
Obrigado e boa sorte para você artmedia70
Olá.
Como posso exibir no gráfico a inscrição no instrumento atual Lucro/perda de ordens abertas.
É difícil verificar no Expert Advisor se ele abriu ou não posições (terminal on/off) e pegar o último volume do lote antes de fechar o terminal.
Obrigado.
Olá, ninguém sabe?
Se eu já fiz algum negócio no passado, então use a função de ordem-lucro e então resuma toda a história do negócio.
Será que alguém tem alguma resposta à minha pergunta?
Há uma falha nesse código. Aqui, retirado do contexto:
A questão é que a expressão
Portanto, o valor do lote será arredondado para uma casa decimal.
Continue lendo, isso pode ajudar.
Espero bem que sim. Obrigado. Vou ler a linha acima para reforçar este ponto. Não quero deixar nenhuma lacuna.
Olá, há alguém conhecedor?
Bem, como eu entendo, tudo isso é elementar. Tudo o que você precisa é de conhecimento elementar.
1. Você faz um exagero das ordens.
2. Verifique se o pedido está aberto, ou seja, o tempo de fechamento do pedido em relação a zero.
3. se o pedido estiver aberto, exibir seus dados necessários, lucro, tipo, etc...
Se eu já fiz algum negócio no passado, então use a função de ordem-lucro e então resuma toda a história do negócio.
Será que alguém tem respostas para a minha pergunta?
Copie o código inteiro em seu consultor especializado
como este
ou
ou funções de uso
para procurar um objeto. Não há outra maneira.Não, funciona, mas o valor sai absolutamente do teto
Tente remover as configurações dos indicadores no código EA. Em seguida, as configurações serão tiradas do código prescrito no indicador.
Também obtive os valores deixados, removi as configurações do código e está tudo bem.