[ARCHIVE!] Any rookie question, so as not to clutter up the forum. Professionals, don't pass by. Can't go anywhere without you - 4. - page 87
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
Sorry, but it's definitely in the Annals. Ignorance of the English language is no excuse.
I don't know what the EURUSD spread is on the micro, honestly. You are probably banned from this forum. These bastards are always thinking of something to keep you out.
Hello, please help with one, I believe elementary, point.
int start()
{
OrderSend(Symbol(),OP_BUY,1,Ask,2,0,0);
Alert(GetLastError());
return;
}
The script opens a market order and everything is OK. But if I set any value of SL or TP, I get "Wrong Stop" error.
int start()
{
OrderSend(Symbol(),OP_BUY,1,Ask,2,Bid-50*Point,Bid+50*Point);
Alert(GetLastError());
return;
}
This code doesn't work anymore. What's wrong? I cannot figure it out...
int start()
{
OrderSend(Symbol(),OP_BUY,1,Ask,2,1.31845,1.40000);
Alert(GetLastError());
return;
}
And it doesn't work even if I enter numerical values of stop and profit. The minimum distance from order to stop order is ok.
Dear Professionals! I have a question. i have an EA, it trades by several criteria, how to make it modify orders separately? for example, i opened two BUY orders by different signals, one breakeven level is 90pp with 40pp increments, another one is 50pp with 50pp increments. i couldn't do it. As i have already tried it i have seen how many signals i have got, and i dont know how to use them. Many thanks in advance!
Dear Professionals! I have a question. i have an EA, it trades by several criteria, how to make it modify orders separately? for example, i opened two BUY orders by different signals, one breakeven level is 90pp with 40pp increments, another one is 50pp with 50pp increments. i couldn't do it. As i have already tried it i have seen how many signals i have got, and i dont know how to use them. i have already tried it and i have no idea how to use it.
-It is possible to open trades by different signals with different Magic numbers.
-It is possible to put "marks" (eg, the same level of trawl) in the comment field when opening trades and then analyze it
without seeing the code on your question, I do not quite understand what exactly you want to do separately
The code is approximately as follows:
for( int c=1; c<=OrdersTotal(); c++) // Order loop
{
OrderSelect(c-1,SELECT_BY_POS); // If there is another
// Order Analysis:
if(OrderMagicNumber()<1000)
if (R==1 && SL<OrderOpenPrice() && Bid-OrderOpenPrice()>((NoLoss)*Point) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*(NoLoss),OrderTakeProfit(),0,Blue);
return;
}
if (R==2 && SL>OrderOpenPrice() && OrderOpenPrice()-Ask>((NoLoss)*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*(NoLoss),OrderTakeProfit(),0,Blue);
return;
}
if (R==1 && SL>=OrderOpenPrice() && Bid - SL > ((NoLoss*Point)+(StepLoss*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss,OrderTakeProfit(),0,Blue);
return;
}
if (R==2 && SL<=OrderOpenPrice() && SL-Ask>((NoLoss*Point)+(StepLoss*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss,OrderTakeProfit(),0,Blue);
return;
}
return;
}
//--------------------------------------------------------------------
for(c=1; c<=OrdersTotal(); c++) // Order loop
{
OrderSelect(c-1,SELECT_BY_POS); // If there is another
// Order Analysis:
if (OrderMagicNumber()>1000)
if (Z==3 && Bid-OrderOpenPrice()>((NoLoss1)*Point) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue);
return;
}
if (Z==4 && SL1>OrderOpenPrice() && OrderOpenPrice()-Ask>NoLoss1*Point)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue);
return;
}
if (Z==3 && SL1>=OrderOpenPrice() && Bid - SL1 > ((NoLoss1*Point)+(StepLoss1*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue);
return;
}
if (Z==4 && SL1<=OrderOpenPrice() && SL1-Ask>((NoLoss1*Point)+(StepLoss1*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue);
return;
}
return;
}
//--------------------------------------------------------------------
// Order values
RefreshRates(); // Refresh data
Min_Lot=MarketInfo(Symb,MODE_MINLOT); // Min. lots
Free =AccountFreeMargin(); // Free funds
One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);// Value of 1 lot
Step =MarketInfo(Symb,MODE_LOTSTEP); // Step change size
if (Lots > 0) // If lots are set, then
Lts =Lots; // work with them
else // % free funds
Lts=MathFloor(Free*Prots/One_Lot/Step)*Step;// To open
if(Lts < Min_Lot) Lts=Min_Lot; // Not less than minimum
if(Lts*One_Lot > Free) // Lots more expensive than free.
{
Alert(" Not enough money ", Lts," Lots");
return; // Exit start()
}
//--------------------------------------------------------------- 8 --
// Opening orders
{
if (Total<2 && Opn_B==true && B==false)
{
// criterion to open a Buy order. Buy
RefreshRates(); // Update data
SL=Bid - New_Stop(StopLoss)*Point; // Calculation of SL open.
TP=Bid + New_Stop(TakeProfit)*Point; // Calculation of TP open.
Alert("Attempting to open Buy. Waiting for reply...");
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP,NULL,y);//Open Buy
if (Ticket > 0) // It worked :)
{
Alert ("Opened Buy order ",Ticket);
B=true;
S=false;
Y=OrderMagicNumber();
R=1;
return; // Exit start()
}
if (Fun_Error(GetLastError())==1) // Error handling
continue; // Retry
// Exit start()
}
if (Total<2 && Opn_S==true && S==false) // Open orders. none +
{
Sleep(10000); // open Sell crit. Sell
RefreshRates(); // Update data
SL=Ask + New_Stop(StopLoss)*Point; // Calculation of SL open.
TP=Ask - New_Stop(TakeProfit)*Point; // Calculation of TP open.
Alert("Attempting to open Sell. Waiting for reply...");
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL,TP,NULL,y);//Open Sel
if (Ticket > 0) // It worked :)
{
Alert ("Sell order opened ",Ticket);
S=true;
B=false;
Y=OrderMagicNumber();
R=2;
return; // Exit start()
}
if (Fun_Error(GetLastError())==1) // Error handling
continue; // Retry
// Exit start()
}
if (Total<2 && Opn_B1==true && B1==false)
{
RefreshRates(); // Update data
SL1=Bid - New_Stop1(StopLoss1)*Point; // Calculate SL open
TP1=Bid + New_Stop1(TakeProfit1)*Point; // Calculation of TP open.
Alert("Attempting to open Buy. Waiting for reply...");
Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL1,TP1,NULL,x);//Open Buy
if (Ticket > 0) // It worked :)
{
Alert ("Opened Buy order ",Ticket);
B1=true;
S1=false;
X=OrderMagicNumber();
Z=3;
return; // Exit start()
}
if (Fun_Error(GetLastError())==1) // Error handling
continue; // Retry
// Exit start()
}
if (Total<2 && Opn_S1==true && S1==false) // Open orders. none +
{
Sleep(10000); // open Sell crit. Sell
RefreshRates(); // Update data
SL1=Ask + New_Stop1(StopLoss1)*Point; // Calculation of SL open.
TP1=Ask - New_Stop1(TakeProfit1)*Point; // Calculation of TP open.
Alert("Attempting to open Sell. Waiting for reply...");
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL1,TP1,NULL,x);//Open Sel
if (Ticket > 0) // It worked :)
{
Alert ("Sell order open ",Ticket);
S1=true;
B1=false;
X=OrderMagicNumber();
Z=4;
return; // Exit start()
}
if (Fun_Error(GetLastError())==1) // Error handling
continue; // Retry
// Exit start()
}
break; // Exit while
}
the code is something like this:
the code is approximately as follows:
for( int c=1; c<=OrdersTotal(); c++) // Order loop
{
OrderSelect(c-1,SELECT_BY_POS); // If there is a next
// Order analysis:
if(OrderMagicNumber()<1000)
if(R==1 && SL<OrderOpenPrice() && Bid-OrderOpenPrice()>((NoLoss)*Point) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*(NoLoss),OrderTakeProfit(),0,Blue);
return;
}
if (R==2 && SL>OrderOpenPrice() && OrderOpenPrice()-Ask>((NoLoss)*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*(NoLoss),OrderTakeProfit(),0,Blue);
return;
}
if (R==1 && SL>=OrderOpenPrice() && Bid - SL > ((NoLoss*Point)+(StepLoss*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss,OrderTakeProfit(),0,Blue);
return;
}
if (R==2 && SL<=OrderOpenPrice() && SL-Ask>((NoLoss*Point)+(StepLoss*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss,OrderTakeProfit(),0,Blue);
return;
}
return;
}
//--------------------------------------------------------------------
// In principle, you don't need to write anything further: it won't be executed anyway
for(c=1; c<=OrdersTotal(); c++) // Order loop
{
OrderSelect(c-1,SELECT_BY_POS); // If there is a next
// Order analysis:
if (OrderMagicNumber()>1000)
if (Z==3 && Bid-OrderOpenPrice()>((NoLoss1)*Point) )
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue);
return;
}
if (Z==4 && SL1>OrderOpenPrice() && OrderOpenPrice()-Ask>NoLoss1*Point)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue);
return;
}
if (Z==3 && SL1>=OrderOpenPrice() && Bid - SL1 > ((NoLoss1*Point)+(StepLoss1*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*NoLoss1,OrderTakeProfit(),0,Blue);
return;
}
if (Z==4 && SL1<=OrderOpenPrice() && SL1-Ask>((NoLoss1*Point)+(StepLoss1*Point))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*NoLoss1,OrderTakeProfit(),0,Blue);
return;
}
return ; // But "to be on the safe side", there is also a "test shot" ;)
}
........ Nothing else matters .......
//
//--------------------------------------------------------------------
// Order value