[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 240
Também não foi possível encontrá-lo. Isso não importa.
Se você trabalha a preços de abertura, é suficiente verificar na abertura de um novo bar.
int start(){if(! NevBar())return(0);//.......return(0);}bool NevBar(){staticint prevtime=0;if( prevtime==Time[0])return(false);
prevtime=Time[0];return(true);}
É mais ou menos isso mesmo. E se a abertura for possível a outros preços. Devemos utilizar outros mecanismos.
Se apenas uma posição pode ser aberta por um símbolo e um período de tempo, devemos controlar o número de posições abertas.
int CountOrder[6];// Функция формирует массив с количеством открытых позиций по каждому виду ордеров.//===============================================================================int Order_Count_Calculate(string _Symbol,int _Magic,int _OP=-1){ArrayInitialize( Order_Count,0);for(int i =OrdersTotal()-1; i >=0; i--){if(!OrderSelect( i, SELECT_BY_POS, MODE_TRADES))continue;if(OrderSymbol()!= _Symbol)continue;if(OrderMagicNumber()!= _Magic)continue;
Order_Count[OrderType()]++;}if(_OP>=0)return( Order_Count[_OP]);return(0);}
Agora, ao verificar os valores dos elementos de matriz necessários, sabemos quantas posições deste tipo são abertas.
Tenho isto no código, mas não entendo esta matriz, como vai detectar se houve uma ordem nesta barra e ela fechou, e vamos esperar por uma nova barra?
Como posso explicar? Posso ter falado mal ou entendido mal a função....
1) Se abrirmos uma ordem na barra zero e ela já estiver fechada, então não abrimos outra ordem nesta barra, mesmo que haja um sinal para abri-la porque já tivemos uma troca nesta barra e ela já está fechada.
Em cada bar é permitido abrir apenas um negócio, se houve um negócio neste bar, não abrimos o pedido, como fazer?
Ajuda às pessoas.....))) Já estou tendo um derretimento \\\\\\\\>>>>
Tenho isto no código, mas não entendo esta matriz, como vai detectar se houve uma ordem nesta barra e ela fechou, e vamos esperar por uma nova barra?
Como posso explicar? Posso ter falado mal ou entendido mal a função....
1) Se abrirmos uma ordem na barra zero e ela já estiver fechada, então não abrimos outra ordem nesta barra, mesmo que haja um sinal para abri-la porque já tivemos uma troca nesta barra e ela já está fechada.
Em cada bar é permitido abrir apenas um negócio, se houve um negócio neste bar, não abrimos o pedido, como fazer?
Ajuda às pessoas.....))) Já estou tendo um derretimento \\\\\\\\>>>>
Confira o tópico de Igor KIM 'Funções úteis do KimIV'. Uma das funções responderá à sua pergunta
Aqui estou tentando escrever um assessor... Apenas começando a aprender... Erro 4062 aparece no testador...(ERR_STRING_PARAMETER_EXPECTED - 4062 - parâmetro do tipo string é esperado)
Não consigo descobrir onde consertá-la. Alguém local pode olhar para o código:)
externdouble Lots =0.9;//лотexterndouble StopLoss =70;externdouble DecreaseFactor =80;externdouble MaximumRisk =0.014;externdouble MaximumLots =100;//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+double GetSizeLot()//оптимизация лотов{double Lot = Lots;int cycle;int prof =0;int orders = HistoryTotal();// history orders totalint losses =0;// number of losses orders without a breakint vinn =0;int i = orders;//---- select lot size
Lot =NormalizeDouble(AccountFreeMargin()* MaximumRisk /100,1);//----if(AccountFreeMargin()<=14)
DecreaseFactor =14;//----if(AccountFreeMargin()>10000)
DecreaseFactor =60;//----if( DecreaseFactor >0&& orders > DecreaseFactor){//----for( cycle =1; cycle < DecreaseFactor; cycle++){
i--;//----if(OrderSelect( i, SELECT_BY_TICKET, MODE_HISTORY)==false){Print("Error in history!");break;}//----if(OrderCloseTime()>0){
prof = prof +OrderProfit();if(OrderProfit()<=0)
losses++;else
vinn++;}}if( prof <=0&& losses > vinn)
Lot =0.1;if( prof <=0&& vinn > losses)
Lot = Lot -(0.1* losses);if( prof >0&& losses > vinn){
Lot = Lot +(0.1*NormalizeDouble( vinn /4,0.1));}if( prof >0&& losses <= vinn ){
Lot = Lot +(0.1*NormalizeDouble( vinn /2,0.1));}}if(AccountFreeMargin()<300|| Lot <0.1)
Lot =0.1;if( Lot*1275>=AccountFreeMargin())
Lot =NormalizeDouble(AccountFreeMargin()* MaximumRisk /100,1);if( MaximumLots !=0&& Lot > MaximumLots)
Lot = MaximumLots;if( DecreaseFactor > orders)
Lot = Lots;return( Lot);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+ int start(){double glav1, sig1, glav2, sig2;int cnt, ticket, total;
glav1 =iCustom(NULL,0,"i_Trend",0,1);
sig1 =iCustom(NULL,0,"i_Trend",1,1);
glav2 =iCustom(NULL,0,"i_Trend",0,2);
sig2 =iCustom(NULL,0,"i_Trend",1,2);
total =OrdersTotal();// проверяем есть ли открытые позицииif( total <1){if(AccountFreeMargin()<(500* Lots))// проверяем денежки на счету{Print("Денег почти нет, осталось всего: ",AccountFreeMargin());return(0);}}// проверяем открытие позиции на покупкуif(( glav2< sig2)&&( glav1> sig1)){OrderSend(Symbol(),OP_BUY, GetSizeLot(),Ask,3,Ask- StopLoss*Point,"AlanMod expert",16384,0,Green);return(0);}// проверяем возможность открытия на продажуif(( glav2> sig2)&&( glav1< sig1)){OrderSend(Symbol(),OP_SELL, GetSizeLot(),Bid,3,Bid+ StopLoss*Point,"AlanMod expert",16384,0,Red);return(0);}for( cnt =0; cnt < total; cnt++){OrderSelect( cnt, SELECT_BY_POS, MODE_TRADES);if(OrderType()<=OP_SELL&&// проверка открытой позиции OrderSymbol()==Symbol())// проверка с нашего ли она графика{if(OrderType()==OP_BUY)// если открыта позиция на покупку{if( glav1< sig1)// проверяем закрывать или нет?{OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);// закрылиreturn(0);// сваливаем}}else// если эта позиция на продажу{if( glav1> sig1)//проверяем закрывать иль нет?{OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);// закрылиreturn(0);// сваливаем}}}}}
Aqui estou tentando escrever um assessor... Apenas começando a aprender... Erro 4062 aparece no testador...(ERR_STRING_PARAMETER_EXPECTED - 4062 - parâmetro do tipo string é esperado)
Não consigo descobrir onde consertá-la. Que qualquer um de vocês, locais, veja o código:)
1) duplo NormalizeDuplo(valor duplo, dígitos int), e você tem (vinn/2, 0,1)
Eu não encontrei a página.
Também não foi possível encontrá-lo. Isso não importa.
Se você trabalha a preços de abertura, é suficiente verificar na abertura de um novo bar.
É mais ou menos isso mesmo. E se a abertura for possível a outros preços. Devemos utilizar outros mecanismos.
Se apenas uma posição pode ser aberta por um símbolo e um período de tempo, devemos controlar o número de posições abertas.
Agora, ao verificar os valores dos elementos de matriz necessários, sabemos quantas posições deste tipo são abertas.
Por exemplo (exemplo de estabelecer uma parada de compra) :
(não é de forma alguma necessário que o preço estabelecido esteja no fluxo de cotação a fim de estabelecer uma ordem pendente.
Você pode ir com o preço atual ou com qualquer preço, desde que você adira ao nível de parada do PREÇO CORRENTE AO PREÇO STOP)
( "EURUSD - Tendências, Previsões e Conseqüências" )
Em vez de
preço duploBUY=..... ....
introduza sua fórmula
EH....muito obrigado especialmente pelo código anexo! Exatamente o que o médico pediu! ))))
Também não foi possível encontrá-lo. Isso não importa.
Se você trabalha a preços de abertura, é suficiente verificar na abertura de um novo bar.
É mais ou menos isso mesmo. E se a abertura for possível a outros preços. Devemos utilizar outros mecanismos.
Se apenas uma posição pode ser aberta por um símbolo e um período de tempo, devemos controlar o número de posições abertas.
Agora, ao verificar os valores dos elementos de matriz necessários, sabemos quantas posições deste tipo são abertas.
Tenho isto no código, mas não entendo esta matriz, como vai detectar se houve uma ordem nesta barra e ela fechou, e vamos esperar por uma nova barra?
Como posso explicar? Posso ter falado mal ou entendido mal a função....
1) Se abrirmos uma ordem na barra zero e ela já estiver fechada, então não abrimos outra ordem nesta barra, mesmo que haja um sinal para abri-la porque já tivemos uma troca nesta barra e ela já está fechada.
Em cada bar é permitido abrir apenas um negócio, se houve um negócio neste bar, não abrimos o pedido, como fazer?
Ajuda às pessoas.....))) Já estou tendo um derretimento \\\\\\\\>>>>
Tenho isto no código, mas não entendo esta matriz, como vai detectar se houve uma ordem nesta barra e ela fechou, e vamos esperar por uma nova barra?
Como posso explicar? Posso ter falado mal ou entendido mal a função....
1) Se abrirmos uma ordem na barra zero e ela já estiver fechada, então não abrimos outra ordem nesta barra, mesmo que haja um sinal para abri-la porque já tivemos uma troca nesta barra e ela já está fechada.
Em cada bar é permitido abrir apenas um negócio, se houve um negócio neste bar, não abrimos o pedido, como fazer?
Ajuda às pessoas.....))) Já estou tendo um derretimento \\\\\\\\>>>>
Confira o tópico de Igor KIM 'Funções úteis do KimIV'. Uma das funções responderá à sua pergunta
Aqui estou tentando escrever um assessor... Apenas começando a aprender... Erro 4062 aparece no testador...(ERR_STRING_PARAMETER_EXPECTED - 4062 - parâmetro do tipo string é esperado)
Não consigo descobrir onde consertá-la. Alguém local pode olhar para o código:)
Aqui estou tentando escrever um assessor... Apenas começando a aprender... Erro 4062 aparece no testador...(ERR_STRING_PARAMETER_EXPECTED - 4062 - parâmetro do tipo string é esperado)
Não consigo descobrir onde consertá-la. Que qualquer um de vocês, locais , veja o código:)
1) duplo NormalizeDuplo(valor duplo, dígitos int), e você tem (vinn/2, 0,1)
2) OrderSend(Symbol(), OP_BUY, GetSizeLot(), Ask, 3, Ask - StopLoss*Point,NO TAKE_profit, "AlanMod expert", 16384, 0, Green) ;
como nomear os amortecedores nos indicadores personalizados?