BTC USD 76,358.3 Gold USD 4,327.02
Time now: Jun 1, 12:00 AM

pending order pakai script

Code:
//+------------------------------------------------------------------+
//|                                        Aiman - Martingale_PO.mq4 |
//|                                          Copyright © 2011, Aiman |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, Aiman."
#property link "Aiman"
#property show_inputs
#include <stdlib.mqh>

extern bool PO_buy      = false;
extern bool PO_sell     = false;
extern double startPrice = 0;  //-- Biarkan 0 untuk current price

extern double startLots     = 0.1;
extern double multiplier    = 2;
extern int totalLayer       = 5;
extern int Gap_Between_Pips = 40;

       int StopLoss = 0;
       int TakeProfit = 0;
       int Slippage = 5;

int start()
{
   double lot, sl, tp;
   int ticket, retry;
   
   double spread = MarketInfo(Symbol(),MODE_SPREAD)*Point;
   double ask = Ask-Gap_Between_Pips*Point;
   double bid = Bid+Gap_Between_Pips*Point; 

   if (startPrice != 0)
   {
      ask = startPrice;
      bid = startPrice;
   }

   for (int i=totalLayer; i>0; i--)
   {
      if (totalLayer != i)
      {
         [COLOR="Red"]if (startPrice == 0)
         {
            ask = ask-Gap_Between_Pips*Point; 
            bid = bid+Gap_Between_Pips*Point; 
         }[/COLOR]
         lot = NormalizeDouble(lot*multiplier,2);
      }
      else lot = startLots;

      if (PO_buy)
      {
         ticket = 0;
         retry = 0;
         while (ticket<1 && retry<10)
         {
            if (StopLoss>0)   sl=(ask-spread)-(StopLoss*Point); else sl=0;
            if (TakeProfit>0) tp=ask+(TakeProfit*Point); else tp=0;         
            ticket=OrderSend(Symbol(),OP_BUYLIMIT,lot,ask,Slippage,sl,tp,"",0,0,Lime);
            if (ticket<1) Print ("Order buy limit failed with error ", ErrorDescription(GetLastError()));
            Sleep (1000);
            retry++;
         }
      }
      if (PO_sell) 
      {
         ticket = 0;
         retry = 0;
         while (ticket<1 && retry<10)
         {
            if (StopLoss>0)   sl=(bid+spread)+(StopLoss*Point); else sl=0;
            if (TakeProfit>0) tp=bid-(TakeProfit*Point); else tp=0;         
            ticket=OrderSend(Symbol(),OP_SELLLIMIT,lot,bid,Slippage,sl,tp,"",0,0,Crimson); 
            if (ticket<1) Print ("Order sell limit failed with error ", ErrorDescription(GetLastError()));
            Sleep (1000);
            retry++;
         }
      }
   }   
   return(0);
}

Sila test dulu sebelum guna!

:)paid:)paid
tenkiu bro, sy test ok x dlu
 
Code:
//+------------------------------------------------------------------+
//|                                        Aiman - Martingale_PO.mq4 |
//|                                          Copyright © 2011, Aiman |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, Aiman."
#property link "Aiman"
#property show_inputs
#include <stdlib.mqh>

extern bool PO_buy      = false;
extern bool PO_sell     = false;
extern double startPrice = 0;  //-- Biarkan 0 untuk current price

extern double startLots     = 0.1;
extern double multiplier    = 2;
extern int totalLayer       = 5;
extern int Gap_Between_Pips = 40;

       int StopLoss = 0;
       int TakeProfit = 0;
       int Slippage = 5;

int start()
{
   double lot, sl, tp;
   int ticket, retry;
   
   double spread = MarketInfo(Symbol(),MODE_SPREAD)*Point;
   double ask = Ask-Gap_Between_Pips*Point;
   double bid = Bid+Gap_Between_Pips*Point; 

   if (startPrice != 0)
   {
      ask = startPrice;
      bid = startPrice;
   }

   for (int i=totalLayer; i>0; i--)
   {
      if (totalLayer != i)
      {
         [COLOR="Red"]if (startPrice == 0)
         {
            ask = ask-Gap_Between_Pips*Point; 
            bid = bid+Gap_Between_Pips*Point; 
         }[/COLOR]
         lot = NormalizeDouble(lot*multiplier,2);
      }
      else lot = startLots;

      if (PO_buy)
      {
         ticket = 0;
         retry = 0;
         while (ticket<1 && retry<10)
         {
            if (StopLoss>0)   sl=(ask-spread)-(StopLoss*Point); else sl=0;
            if (TakeProfit>0) tp=ask+(TakeProfit*Point); else tp=0;         
            ticket=OrderSend(Symbol(),OP_BUYLIMIT,lot,ask,Slippage,sl,tp,"",0,0,Lime);
            if (ticket<1) Print ("Order buy limit failed with error ", ErrorDescription(GetLastError()));
            Sleep (1000);
            retry++;
         }
      }
      if (PO_sell) 
      {
         ticket = 0;
         retry = 0;
         while (ticket<1 && retry<10)
         {
            if (StopLoss>0)   sl=(bid+spread)+(StopLoss*Point); else sl=0;
            if (TakeProfit>0) tp=bid-(TakeProfit*Point); else tp=0;         
            ticket=OrderSend(Symbol(),OP_SELLLIMIT,lot,bid,Slippage,sl,tp,"",0,0,Crimson); 
            if (ticket<1) Print ("Order sell limit failed with error ", ErrorDescription(GetLastError()));
            Sleep (1000);
            retry++;
         }
      }
   }   
   return(0);
}

Sila test dulu sebelum guna!

script ni lak, ade prob skit gk, hhuuhu, po dia x jd lapis, smua po dia bukak kat price yg kte setkan tu, so kalo setkan 5 layer, smua kat 1 price je,
 
saya test ok je bro

huhu yeke , sy try byk kali pn still xleh, kalo start price tu biar 0 br ok,tp yg tu po dr nilai harga semasa la, tp kalo nk setkan kat price tertentu, layer x jd dh. dia bukak smua layer kat price yg kte set tu je. :(
 
huhu yeke , sy try byk kali pn still xleh, kalo start price tu biar 0 br ok,tp yg tu po dr nilai harga semasa la, tp kalo nk setkan kat price tertentu, layer x jd dh. dia bukak smua layer kat price yg kte set tu je. :(

Saya edit kaler purple kat code sebelah, bro try balik
 
Saya edit kaler purple kat code sebelah, bro try balik

thanks bro, kali ni br menjd :)paid
berkenaan script close all tu cmne bro, leh x adjustkan setting close po tu, bg leh pilih close po buy@sell, hehe
 
Script delete PO buy
Code:
int start()
  {
//----
   bool run = true;
   while (run)
   {
      int count = 0;
      for (int i=OrdersTotal()-1; i>[COLOR="Red"]-1[/COLOR]; i--)
      {
         OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
         if (OrderType()!=OP_BUYLIMIT && OrderType()!=OP_BUYSTOP) continue;
         OrderDelete(OrderTicket());
         count++;
      }
      if (count == 0) run=false;
   }         
//----
   return(0);
  }

untuk sell, tukar aje semua "BUY" jadi "SELL"
 
Last edited:
Code:
//+------------------------------------------------------------------+
//|                                        Aiman - Martingale_PO.mq4 |
//|                                          Copyright © 2011, Aiman |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, Aiman."
#property link "Aiman"
#property show_inputs
#include <stdlib.mqh>

extern bool PO_buy      = false;
extern bool PO_sell     = false;
extern double startPrice = 0;  //-- Biarkan 0 untuk current price

extern double startLots     = 0.1;
extern double multiplier    = 2;
extern int totalLayer       = 5;
extern int Gap_Between_Pips = 40;

       int StopLoss = 0;
       int TakeProfit = 0;
       int Slippage = 5;

int start()
{
   double lot, sl, tp;
   int ticket, retry;
   
   double spread = MarketInfo(Symbol(),MODE_SPREAD)*Point;
   double ask = Ask-Gap_Between_Pips*Point;
   double bid = Bid+Gap_Between_Pips*Point; 

   if (startPrice != 0)
   {
      ask = startPrice;
      bid = startPrice;
   }

   for (int i=totalLayer; i>0; i--)
   {
      if (totalLayer != i)
      {
         [COLOR="DarkOrchid"]ask = ask-Gap_Between_Pips*Point; 
         bid = bid+Gap_Between_Pips*Point; [/COLOR]

         lot = NormalizeDouble(lot*multiplier,2);
      }
      else lot = startLots;

      if (PO_buy)
      {
         ticket = 0;
         retry = 0;
         while (ticket<1 && retry<10)
         {
            if (StopLoss>0)   sl=(ask-spread)-(StopLoss*Point); else sl=0;
            if (TakeProfit>0) tp=ask+(TakeProfit*Point); else tp=0;         
            ticket=OrderSend(Symbol(),OP_BUYLIMIT,lot,ask,Slippage,sl,tp,"",0,0,Lime);
            if (ticket<1) Print ("Order buy limit failed with error ", ErrorDescription(GetLastError()));
            Sleep (1000);
            retry++;
         }
      }
      if (PO_sell) 
      {
         ticket = 0;
         retry = 0;
         while (ticket<1 && retry<10)
         {
            if (StopLoss>0)   sl=(bid+spread)+(StopLoss*Point); else sl=0;
            if (TakeProfit>0) tp=bid-(TakeProfit*Point); else tp=0;         
            ticket=OrderSend(Symbol(),OP_SELLLIMIT,lot,bid,Slippage,sl,tp,"",0,0,Crimson); 
            if (ticket<1) Print ("Order sell limit failed with error ", ErrorDescription(GetLastError()));
            Sleep (1000);
            retry++;
         }
      }
   }   
   return(0);
}

Sila test dulu sebelum guna!

masta..script ni kita kena wat po dlu ke ..pastu baru po yg lain automatik dia buat..ke automatik smua dia akn buat po..
script tk yah ubah apa2 kn:D:)cgrock
 
masta..script ni kita kena wat po dlu ke ..pastu baru po yg lain automatik dia buat..ke automatik smua dia akn buat po..
script tk yah ubah apa2 kn:D:)cgrock

ok..masta tkpe...dh jd..td tk perasan ader po:D:">:)paid:)cgrock
 

Live Forex Chart

Currency
Rates
EUR / USD
1.14734
USD / JPY
155.684
GBP / USD
1.33950
USD / CHF
0.82533
USD / CAD
1.39857
EUR / JPY
178.622
AUD / USD
0.71131
Back
Top
Log in Register