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

 
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 ?
 

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...

 
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,

 

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

 

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);
  }


 

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!!!!

 
//+------------------------------------------------------------------+
//| 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);
}
//+------------------------------------------------------------------+
Reason: