[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 744

 

Ainda abre esta ordem em um lote.

é assim que eu defino as variáveis no meu ekspert

extern int TakeProfit=18;
extern int StopLoss=18;
extern double Lot=0.01;
extern int StartTime=0;
int Today=0;
int h=10;
int h1=26;
int mag=777;
bool b=0,s=0, //соответственно бай или селл  
bs=0,// если закрытие по стоплоссу ордера бай
ss=0,// если закрытие по стоплоссу ордера sell
bt=0,
st=0;//      то же по ТП
double bl=0,sl=0; // лоты соответсвенно для бай и селл

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
{


if(DayOfWeek()==0 || DayOfWeek()==6) return(0); // в выходные не работаем
if(!IsTradeAllowed()) return(0); // пропустим тик если терминал занят
int total = OrdersTotal();
if(total == 0)



   {NewOrder(OP_BUY,Lot);
    NewOrder(OP_SELL,Lot);
    NewOrder(OP_BUYLIMIT,Lot);
    NewOrder(OP_SELLLIMIT,Lot);
    NewOrder(OP_BUYSTOP,Lot);
    NewOrder(OP_SELLSTOP,Lot);
    Today=TimeDay(TimeCurrent());}
    
{



for(int cnt=OrdersHistoryTotal();cnt>0;cnt--)
     {
OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY);
{if(OrderMagicNumber()== mag &&
OrderSymbol()==Symbol()) 
{ if (OrderType() == OP_BUY )  {b=1; if (OrderClosePrice()==OrderTakeProfit()) bt=1;
if (OrderClosePrice()==OrderStopLoss()) bs=1; bl=OrderLots()*100; break;}
if (OrderType() == OP_SELL)  {s=1; if (OrderClosePrice()==OrderTakeProfit()) st=1; 
if (OrderClosePrice()==OrderStopLoss()) ss=1; sl=OrderLots()*100; break;}
            }
         }
      }


}//end

if(bs==1||bl==1)
{   
    NewOrder1(OP_BUYLIMIT,Lot);
Today=TimeDay(TimeCurrent());}
    

e aqui está a abertura do pedido

int NewOrder1(int Cmd,double Lot)
{double TP=0; //тейкпрофит
double SL=0; //стоплосс
double PR=0; //Цена
double LT=0; //Лот
while(!IsTradeAllowed()) Sleep(100);
if(Cmd==OP_BUYLIMIT)
   {PR=Ask-Point*h;
    if(TakeProfit>0) TP=PR+TakeProfit*Point;
    if(StopLoss>0) SL=PR-StopLoss*Point;
    if(Lot>0) LT=3*Lot;}
int tic1=OrderSend(Symbol(),Cmd,LT,PR,3,SL,TP,0,mag,0,CLR_NONE);
//-----------
if(tic1<0) Print(GetLastError());

if(tic1>0){
b=0;s=0; //соответственно бай или селл  
bs=0;// если закрытие по стоплоссу ордера бай
ss=0;// если закрытие по стоплоссу ордера sell
bt=0;
st=0;//      то же по ТП
bl=0;sl=0; // лоты соответсвенно для бай и селл
}
//-----------
return(tic1);}
 
profitinvesting:

Você poderia me dar o código da função que irá parar uma vez no nível de breakeven, quando o lucro será, por exemplo, 20 pips

Obrigado antecipadamente pela resposta:)

Você pode encontrá-lo e muitas outras funções úteis no site de Igor Kim http://www.kimiv.ru. E a que você precisa se chama MovingInWL(), se não estou enganado.
 
ToLik_SRGV:

Boris, é ainda mais simples do que isso. Você deixa cair esta linha:

No topo do código (para ser separado, não em nenhuma função).
E então naqueles lugares onde há uma chamada da função OrderSend(...), basta anexá-la em um abraço adicional do se operador

Agora, antes de abrir o próximo pedido, o operador verificará se há ou não negócios no bar atual. Se foram, então a barra atual foi armazenada na variável nova e se a barra atual coincide com a armazenada, então nenhuma posição será aberta. Assim, se a barra for nova, então seu tempo de abertura não coincidirá com os dados da variável nova, o negócio será aberto e a variável nova receberá um novo valor.

Não conheço exatamente a arquitetura de sua EA, mas este método deve funcionar na maioria dos casos.


Muito obrigado! Encaixa perfeitamente!
[Excluído]  

Não consigo pensar em uma maneira melhor de proceder.

Há um indicador com um monte de matrizes. O segundo indicador precisa trabalhar com estas matrizes. Para calcular e emitir o resultado para sua própria tabela.

A maneira mais fácil seria chamar esse indicador, mas parece que isso não é possível.

Como chegar a outras matrizes?

[Excluído]  
Abzasc:

Eu não sei.

Eu peguei.
 
LAIT123:

Olá, você poderia me dizer como visualizar os logs no MT4?

Você não precisa postar 15 mensagens com apenas um conteúdo. E se você o fizer, é desejável limpar depois de si mesmo. Não espere pelos tios.
 
artmedia70:

Você deve realmente precisar dele... :) Ou o mouse está preso...



Não é o rato que está preso. É a impaciência. Levei 20 minutos para apagar 15 postos no final.
[Excluído]  
Vinin:

Não é o rato que está preso.
Ele pensou que era uma sala de bate-papo :)
 
FoxUA:

Ainda abre esta ordem em um lote.

é assim que eu defino as variáveis no meu ekspert

e aqui está a abertura do pedido

Não entendo de todo como se sente... Os suportes não combinam entre si, falta um suporte de fechamento. Eu não sei o que está acontecendo. Limpe seu código... É difícil lidar com isso, e não há como compilá-lo e executá-lo - estamos trabalhando em nossos próprios códigos...
 
Vinin:

Não é o rato que está preso. É a impaciência. Levei 20 minutos para apagar 15 postos no final.
:) A impaciência é normalmente praticada em outro escritório. :)