[WARNING CLOSED!] Any newbie question, so as not to clutter up the forum. Professionals, don't go by. Can't go anywhere without you. - page 993
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
So display it on the left side of the screen - what's the difference? - The line on the right will have the price - on the left the text of the message...
or the beam - but then everything is on the left-hand side...
This is the customer's request :) Other indicators are used on the left so that one does not overlap with the other.
Well, I'll solve the problem, thank you all for your participation!
Hello. i have a question: is there any way to optimise an advisor on several currency pairs simultaneously in MT4?
You can run several MT4 at the same time with optimisation of one EA on different pairs.
If it's forbidden, then tell him I allow it
try initing to assign delta
delta = 1; if (digits = 5) {delta = 10;}
and in the text add
if (Bid <=Low&& Ask < High - 10*Point*delta)
This is probably not quite right but the meaning is clear
delta = Point; if(digits = 5) {delta = 10*Point;}
if (Bid <=Low&& Ask < High - 10*delta) though there is no difference, but... what about me?
and the following question about dynamic spreads makes it necessary to calculate the average spread over N ticks,
I drew the following but I am not sure if it is correct:
int TicSpred=100;
double Spread[10000];
if (Spread[0]==0) {ArrayInitialize(Spread,(Ask-Bid)/delta);}
for (int q=TicSpred;q>0;q--){
if (Spread[q]==0) Spread[q]=(Ask-Bid)/delta;}
for (q=TicSpred;q>0;q--){Spread[p]=Spread[p-1];}
Spread[0]=(Ask-Bid)/delta;
double CountedSpred;
for (q=0;q<bars;q++){CountedSpred=CountedSpred+Spread[p];}
double Aversired=CountedSpred/TicSpred; but I am not sure if this is correct, and it does not seem to count correctly for five digits
No, that's not right at all.
I need to write each next spread into an array, and divide it by the number of spreads in the array, and as soon as the number of records reaches N, I need to remove the first one in the array
can something simpler be done?
There is also an error here
if (Bid >=High ) // Close Bay
return (11);
if (Bid <=Low && Ask <High - 1*delta )
return (21); // Close Sell
if (trade == 1){
if ( Bid <=Low ) // Open Bay
Print ( " Bay = ",11);
return (10);}
if (Time == 1){
if (Bid<=Low&&Ask<High -1*delta ) // Opening of Srll
Print (" Sell= ",21);
return (20);}
return; // if the time is not good, do not open something; just exit.
The following variables High and Low are known (I checked with a print) and the price shows the following conditions
1.if buy > High, then we send a 10 command (close buy)
2. if buy < Low and asc is lower than High by 1 point, then close it with return 11
if variable Time == 1 then:
3. if Bid is lower or equal to Low and Ask is lower than High by at least one point, then open Buy
4. if the Bid is higher or equal to High, then we open Sell?
I want to remind that this program is fully from the tutorial, I change only trading criteria, respectively, the command 10, 20 all standard, I will attach all the functions that are called just in case
People! Hi all! Help!
I need to write a time interval in the allert indicator function. like, a window pops up when a signal appears and we can see there from which chart this signal. M15 for example.
I have searched on the site, but I do not find anything like that.
People! Hi all! Help!
I need to write a time interval in the allert indicator function. like, a window pops up when a signal appears and we can see there from which chart this signal. M15 for example.
I have searched on the site, but I do not find anything like that.
Anyway, this function
//--------------------------------------------------------------------
// Criterion.mqh
// Intended to be used as an example in the MQL4 tutorial.
//--------------------------------------------------------------- 1 --
// Function for calculating trade criteria.
// Returned values:
// 10 - opening Buy
// 20 - Sell opening
// 11 - closing Buy
// 21 - Sell closing
// 0 - no significant criteria
// -1 - another financial instrument is used
//--------------------------------------------------------------- 2 --
// External variables:
//--------------------------------------------------------------- 3 --
int Criterion() // User function
{
//----------------------------------------------------------------4----
string Sym="________";
if (Sym!=Symbol()) // If not our fin.
{
Inform(16); // message.
return(-1);} // ...and exit
delta = Point;
if (Digits == 5 || (Digits == 3 && StringFind(Symbol(), "JPY", 0) != -1))
delta= Point *10;
int Digital=MarketInfo(Symbol(),12);
//--------------------------------------------------------------- 5 --
// Parameters for the technical indicator:
bool trade;
if (Begin>End && (Hour()>Begin-1 || Hour()<End)){trade=1;}
if (Begin<End && (Hour()>Begin-1 && Hour()<End)){trade=1;}
{if (trade==0 && mag!=Mag) return(0);}
// --------------------------Calculate average spread-----------------------
if (!IsTesting() || IsVisualMode() || !IsOptimization())
{
int TicSpred=100;
double Spread[10000];
if (Spread[0]==0) {ArrayInitialize(Spread,(Ask-Bid)/delta);}
for (int q=TicSpred;q>0;q--){
if (Spread[q]==0) Spread[q]=(Ask-Bid)/delta;}
for (q=TicSpred;q>0;q--){Spread[q]=Spread[q-1];}
Spread[0]=(Ask-Bid)/delta;
double CountedSpred;
for (q=0;q<TicSpred;q++){CountedSpred=CountedSpred+Spread[q];}
double Averaged=CountedSpred/TicSpred;
}
//--------------------------------------------------------------- 5 --
//Calculate trading criteria
if (Bid >=High ) // Close Bay
return (11);
if (Bid <=Low )
return (21); // Close Sell
if (trade == 1){
if ( Bid <=Low &&Ask<High -0.5*MyPoint ) // Open Bay
Print ( " Bay = ",11);
return (10);}
if (trade == 1){
if (Bid>=High ) // Opening of the Srll
Print ( " Sell = ",21);
return (20);}
return; // if the time is bad, do not open anything; just exit.
//--------------------------------------------------------------- 6 --
return(0); //exit from user function
}
//--------------------------------------------------------------- 7 --
it is assumed that Low and High variables have already been defined and are correct