Experts: Sell_Buy Scalper_agr - page 2

 

Hello everybody,

I've got to tell you that this EA made by FSS contains errors in programing (like CyrusTheGreat told).

Also I have bought yesterday(March 7th, from FSS ( www.forexsoftwareshop.com/ ) the program FSS_InDay_EA which works awful. For a 2 months (January and February 2011) tested with 1000 Eur the result was a 245 Eur balance. I have seen inside the program a lot of errors.

Beware of this scam named FSS -www.forexsoftwareshop.com/.

If anyone can't belive what I'm saying, I will be glad to to share the awful EA named FSS_InDay_EA. and make his/her own tests to belive it and tell to others to be aware of this scam from www.forexsoftwareshop.com

[Deleted]  
The idea about this EA may be good, but it needs some changes. I have been studying the code and I have made some modifications, adding a MACD filter to help signals to be more conssistents and adding an initial stop loss and it improves results. Best results are with a Stop loss in 100 p. In tester mode, I got a 62% rentability from Jan-1 to Mar-8.
 
enricm2:
The idea about this EA may be good, but it needs some changes. I have been studying the code and I have made some modifications, adding a MACD filter to help signals to be more conssistents and adding an initial stop loss and it improves results. Best results are with a Stop loss in 100 p. In tester mode, I got a 62% rentability from Jan-1 to Mar-8.

What changes did you make ?
[Deleted]  

Hi guys, i can describe myself as a newbie.

Is there a way we can add martingale to this code?

I hope someone can Thanks...

[Deleted]  
SERRCEYY31:

Hi guys, i can describe myself as a newbie.

Is there a way we can add martingale to this code?

I hope someone can Thanks...

Better trade without martingale, save yours deposit,

Best Regard,

[Deleted]  

Hello,


i want to trade this EA with 900€ and 0.01Lots, but the EA dont open a position,


if (AccountFreeMargin() < 1000.0 * Lots) {
Print(" Free Margin = ", AccountFreeMargin());

return (0);


must i change anything in code??


regards gatowman

[Deleted]  

I insert to script simple money managment, all code is here:

//Working as aggressor scalper, example - open buy signal, next is sell signal.
//More info : info@forexsoftwareshop.com
//http://www.forexsoftwareshop.com
extern double TakeProfitB = 25.0;
extern double TakeProfitS = 25.0;
extern double TrailingStop = 20.0;
extern double TrailingStop2 = 20.0;
extern double Lots = 1.0;
extern bool MoneyManagment = TRUE;
extern double LotsPercent = 45;
extern double LotsMax = 2;
extern string a02 = "No-trading Price";
extern bool NoTradingPriceBool = TRUE;
extern double NoTradingPriceUp = 20000;
extern string a04 = "Message AccountFreeMargin()";
extern bool MessAcco = FALSE;
extern double OneLotPrice = 1000;
  
  color Filter10 = 68;
  color Filter12 = 9;
  color Filter6 = 80;
  color Filter4 = 35;
  color Filter2 = 47;
  color Filter9 = 46;
  string Name_EA = "sca";
  int Slippage = 30;
  bool UseSound = FALSE;
  string EAsound = "alert.wav";
void deinit() {
   Comment("");
}
int start() {
   if (Bars < 100) {
      Print(", Bars < 100");
      return (0);
   }
   if (TakeProfitB < 10.0) {
      Print(", TakeProfitB < 10.0");
      return (0);
   }
   if (TakeProfitS < 10.0) {
      Print(", TakeProfitS < 10.0");
      return (0);
   }
   double l_iclose_0 = iClose(NULL, PERIOD_M5, 0);
   double l_ima_8 = iMA(NULL, PERIOD_M5, 7, 0, MODE_SMA, PRICE_OPEN, 0);
   double l_iclose_16 = iClose(NULL, PERIOD_M5, 0);
   double l_ima_24 = iMA(NULL, PERIOD_M5, 6, 0, MODE_SMA, PRICE_OPEN, 0);
   if (AccountBalance() < 1000.0 * Lots && MessAcco) {
      Alert(" Balance = ", AccountBalance());
      Print(" Balance = ", AccountBalance());
      return (0);
   }
   if (!(AccountFreeMargin()>NoTradingPriceUp && NoTradingPriceBool)) {  //it is good for some micro and mini accounts (levarge), it stops trading.
      Alert(" Account Free Margin = ", AccountFreeMargin()," IS FULL")
      return (0);
   }
   if (!ExistPositions()) {
      if (l_iclose_0 < l_ima_8) {
         OpenBuy();
         return (0);
      }
      if (l_iclose_16 > l_ima_24) {
         OpenSell();
         return (0);
      }
   }
   TrailingPositionsBuy(TrailingStop);
   TrailingPositionsSell(TrailingStop2);
   return (0);
}
bool ExistPositions() {
   for (int l_pos_0 = 0; l_pos_0 < OrdersTotal(); l_pos_0++) {
      if (OrderSelect(l_pos_0, SELECT_BY_POS, MODE_TRADES))
         if (OrderSymbol() == Symbol()) return (TRUE);
   }
   return (FALSE);
}
void TrailingPositionsBuy(int ai_0) {
   for (int l_pos_4 = 0; l_pos_4 < OrdersTotal(); l_pos_4++) {
      if (OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol() == Symbol()) {
            if (OrderType() == OP_BUY) {
               if (Bid - OrderOpenPrice() > ai_0 * Point)
                  if (OrderStopLoss() < Bid - ai_0 * Point) ModifyStopLoss(Bid - ai_0 * Point);
            }
         }
      }
   }
}
void TrailingPositionsSell(int ai_0) {
   for (int l_pos_4 = 0; l_pos_4 < OrdersTotal(); l_pos_4++) {
      if (OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol() == Symbol()) {
            if (OrderType() == OP_SELL) {
               if (OrderOpenPrice() - Ask > ai_0 * Point)
                  if (OrderStopLoss() > Ask + ai_0 * Point || OrderStopLoss() == 0.0) ModifyStopLoss(Ask + ai_0 * Point);
            }
         }
      }
   }
}
void ModifyStopLoss(double a_price_0) {
   int l_bool_8 = OrderModify(OrderTicket(), OrderOpenPrice(), a_price_0, OrderTakeProfit(), 0, CLR_NONE);
   if (l_bool_8 && UseSound) PlaySound(EAsound);
}
void OpenBuy() {
   double l_lots_0 = GetSizeLot();
   double l_price_8 = 0;
   double l_price_16 = GetTakeProfitBuy();
   string l_comment_24 = GetCommentForOrder();
   OrderSend(Symbol(), OP_BUY, l_lots_0, Ask, Slippage, l_price_8, l_price_16, l_comment_24, 0, 0, Filter10);
   if (UseSound) PlaySound(EAsound);
}
void OpenSell() {
   double l_lots_0 = GetSizeLot();
   double l_price_8 = 0;
   double l_price_16 = GetTakeProfitSell();
   string l_comment_24 = GetCommentForOrder();
   OrderSend(Symbol(), OP_SELL, l_lots_0, Bid, Slippage, l_price_8, l_price_16, l_comment_24, 0, 0, Filter6);
   if (UseSound) PlaySound(EAsound);
}
string GetCommentForOrder() {
   return (Name_EA);
}
double GetSizeLot() {
   if (!MoneyManagment) {
      return (Lots);
   } else {
      return (LotsOptimized());
   }
}
double GetTakeProfitBuy() {
   return (Ask + TakeProfitB * Point);
}
double GetTakeProfitSell() {
   return (Bid - TakeProfitS * Point);
}
double LotsOptimized()
  {
   double lot=Lots;
//---- select lot size
   lot=NormalizeDouble(AccountFreeMargin()*LotsPercent/100/OneLotPrice,2);
//---- return lot size
   if(lot<0.01) lot=0.01;
   if(lot>LotsMax) lot=LotsMax;
   return(lot);
  }


[Deleted]  

It must change

if (!(AccountFreeMargin()>NoTradingPriceUp && NoTradingPriceBool)) {  //it is good...
to
if (AccountFreeMargin()>NoTradingPriceUp && NoTradingPriceBool) {  //it is good...
 
nixso2:

Thank you for improvements made to the code!!!!

[Deleted]  
//+------------------------------------------------------------------+
//| FSS quick multiple buy.mq4 |
//| ForexSoftwareShop |
//| http://www.forexsoftwareshop.com |
//+------------------------------------------------------------------+
#property copyright "ForexSoftwareShop"
#property link "http://www.forexsoftwareshop.com"
#property show_inputs

#include <stdlib.mqh>

extern int OrderCount = 3;
extern double StopLoss = 0.005;
extern double StopLossStep = 0;
extern double TakeProfit = 0.002;
extern double TakeProfitStep = 0.003;
extern double Lots = 0.01;
extern bool ECN = FALSE;
extern string Comm = "FSS_quick_multiple_buy";

//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
int ticket, cnt, error;
ticket = 0;
for(cnt = 0; cnt < OrderCount; cnt++ )
{
RefreshRates();
if (ECN == FALSE) ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, Ask - StopLoss, Ask + TakeProfit, Comm, 123654);

if (ticket == -1 || ECN == TRUE)
{
error = GetLastError();
if(error == 130/* INVALID_STOPS */ || ECN == TRUE)
{
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, 0, Comm, 123654);
if(ticket>0)
{
OrderSelect(ticket, SELECT_BY_TICKET);
if(OrderModify(OrderTicket(), OrderOpenPrice(), Ask - StopLoss, Ask + TakeProfit,0) == FALSE) ticket = -1;
}
if(ticket == -1)
{
error = GetLastError();
Print("Error nr.: ",error," Error Description: ",ErrorDescription(error));
}
} else Print("Error nr.: ",error," Error Description: ",ErrorDescription(error));
} // ticket == -1

StopLoss = StopLoss + StopLossStep;
TakeProfit = TakeProfit + TakeProfitStep;
}
//----
return(0);
}
//+------------------------------------------------------------------+