Regisztráció Elfelejtett jelszó

Metatrader

Re: Import

#540080 Amatoregy Előzmény: #540079

oco.

ezt expertkent latja

#property copyright "Matt C do not sell but you can share"

#property link " http://www.xpworx.com"

string ver = "Modified: 28/11/06-07:15";

//---- Trades limits

extern bool CloseAtDayEnd = false;

extern double distance = 5;

extern double stoploss = 100;

extern double takeprofit = 50;

extern double lots = 0.01;

extern double trailingStop = 35;

extern int slippage = 5;

extern int hour_start = 19;

//--- Global variables

int MN1 = 20611160;

int MN2 = 90611285;

int MagicNumber = 0;

string ExpertComment = "Matt_EA";

//+------------------------------------------------------------------

int init()

{

if (CloseAtDayEnd)

{

ExpertComment = "Matt_EA_CLOSE_ON";

MagicNumber = MN1;

}

else

{

ExpertComment = "Matt_EA_CLOSE_OFF";

MagicNumber = MN2;

}

return(0);

}

int deinit()

{

return(0);

}

int start()

{

int cnt,total,long_ticket,short_ticket;

int hour_end = hour_start -1;

total = OrdersTotal();

if((total 0)

{

if(OrderSelect(short_ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Pending " + GetOrderType(OrderType()) + " order opened : ",OrderOpenPrice());

}

else

{

Print("Error opening Pending " + GetOrderType(OrderType()) + " order : ",GetLastError());

}

long_ticket=OpenPendingOrder(OP_BUYSTOP,lots,distance,slippage,stoploss,takeprofit,ExpertComment+"_BUYSTOP",MagicNumber,0);

if(long_ticket>0)

{

if(OrderSelect(long_ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Pending " + GetOrderType(OrderType()) + " order opened : ",OrderOpenPrice());

}

else

{

Print("Error opening Pending " + GetOrderType(OrderType()) + " order : ",GetLastError());

}

}

if(CloseAtDayEnd && Hour()==hour_end)

{

CloseDeleteAll();

}

for(cnt=0;cnt {

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNumber)

{

if(OrderType()==OP_BUY) //Point*trailingStop)

{

if(OrderStopLoss()(Ask+Point*trailingStop)) || (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*trailingStop,OrderTakeProfit(),0,Red);

}

}

}

}

}

return(0);

}

int OpenPendingOrder(int pType=OP_BUYLIMIT,double pLots=1,double pLevel=5,int sp=0, double sl=0,double tp=0,string pComment="",int pMagic=123,datetime pExpiration=0,color pColor=Yellow)

{

switch (pType)

{

case OP_BUYLIMIT:

Alert("BUYLIMIT - Ask:",Ask," Bid:",Bid," Open price:",Ask-(pLevel*Point)," StopLoss:",(Ask-pLevel*Point)-sl*Point);

return(OrderSend(Symbol(),OP_BUYLIMIT,pLots,Ask-(pLevel*Point),sp,(Ask-pLevel*Point)-sl*Point,(Ask-pLevel*Point)+tp*Point,pComment,pMagic,pExpiration,pColor));

break;

case OP_BUYSTOP:

Alert("BUYSTOP - Ask:",Ask," Bid:",Bid," Open price:",Ask+(pLevel*Point)," StopLoss:",(Ask+pLevel*Point)-sl*Point);

return(OrderSend(Symbol(),OP_BUYSTOP,pLots,Ask+(pLevel*Point),sp,(Ask+pLevel*Point)-sl*Point,(Ask+pLevel*Point)+tp*Point,pComment,pMagic,pExpiration,pColor));

break;

case OP_SELLLIMIT:

Alert("SELLLIMIT - Ask:",Ask," Bid:",Bid," Open price:",Bid+(pLevel*Point)," StopLoss:",(Bid+pLevel*Point)+sl*Point);

return(OrderSend(Symbol(),OP_SELLLIMIT,pLots,Bid+(pLevel*Point),sp,(Bid+pLevel*Point)+sl*Point,(Bid+pLevel*Point)-tp*Point,pComment,pMagic,pExpiration,pColor));

break;

case OP_SELLSTOP:

Alert("SELLSTOP - Ask:",Ask," Bid:",Bid," Open price:",Bid-(pLevel*Point)," StopLoss:",(Bid-pLevel*Point)+sl*Point);

return(OrderSend(Symbol(),OP_SELLSTOP,pLots,Bid-(pLevel*Point),sp,(Bid-pLevel*Point)+sl*Point,(Bid-pLevel*Point)-tp*Point,pComment,pMagic,pExpiration,pColor));

break;

}

}

string GetOrderType( int type)

{

if(type == OP_BUY) return ("Buying position");

if(type == OP_SELL) return ("Selling position");

if(type == OP_BUYLIMIT) return ("Buy Limit pending position");

if(type == OP_BUYSTOP) return ("Buy Stop pending position");

if(type == OP_SELLLIMIT) return ("Sell Limit pending position");

if(type == OP_SELLSTOP) return ("Sell Stop pending position");

}

bool isNewSymbol(string current_symbol)

{

//loop through all the opened order and compare the symbols

int total = OrdersTotal();

for(int cnt = 0 ; cnt < total ; cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

string selected_symbol = OrderSymbol();

if (current_symbol == selected_symbol && OrderMagicNumber()==MagicNumber)

return (False);

}

return (True);

}

void CloseOposite(int type)

{

int cnt,total;

total = OrdersTotal();

for(cnt=0;cnt=0 ; cnt--)

{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);

if (OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNumber)

{

if(OrderType()==OP_BUY)

OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Violet);

if(OrderType()==OP_SELL)

OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Violet);

if(OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP || OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT)

OrderDelete(OrderTicket());

}

}

}

/*void mPrint(string msg1 = "" , string msg2 = "" , string msg3 = "" , string msg4 = "" , string msg5 = "", string msg6 = "", string msg7 = "", string msg8 = "")

{

if(IsTesting()) return(0);

string temp = "";

if (msg1 != "") temp = temp + ":" + msg1;

if (msg2 != "") temp = temp + ":" + msg2;

if (msg3 != "") temp = temp + ":" + msg3;

if (msg4 != "") temp = temp + ":" + msg4;

if (msg5 != "") temp = temp + ":" + msg5;

if (msg6 != "") temp = temp + ":" + msg6;

if (msg7 != "") temp = temp + ":" + msg7;

if (msg8 != "") temp = temp + ":" + msg8;

Print(temp);

}*/

Re: Import

#540079 Amatoregy Előzmény: #540077

oco_sajat. (se indikatorkenr, se expertkent nem latja..)

OCO.mq4 is One Cancels the Other script. It should be put in

MetatradeInstall/experts/scripts folder and after compilation it

will be available in Navigator/Scripts.

With default parameters it opens two pending stop orders, one for

sell and one for buy. This is also known as Straddle and very

popular among News Trades. One have a possibility to

change order type, set Slippage and Expiration. Also

when StopLoss and/or TakeProfits are set to different value than 0

this value will be used during sending orders.

One should note, that setting pending orders require that they

are put in minimum distance from a market price, Ask for BUYSTOP

and Bid for SELLSTOP. This minimum price is different among

brokers and can be found in Symbol Properties as Stops level.

Most of brokers have value 5 which means that a BUYSTOP can be

put with minimum distance of 6 pips above Ask, and SELLSTOP 6

pips below Bid. In case that orders are set too close then

'ERROR #130 : invalid stops' message is put.

MQL Service, 24/01/2007

*/

//| $Id: //mqlservice/mt4files/experts/scripts/OCO.mq4#1 $

//+------------------------------------------------------------------+

#property copyright "Copyright Š 2007, MQL Service"

#property link " http://www.mqlservice.com"

#property show_inputs

//---- Parametres Externes --- changed the orders to my preference

extern double BuyOrderPrice = 0.0000;

extern double BuyLots = 0.01;

extern int BuyStopLoss = 100;

extern int BuyTakeProfit = 30;

extern double SellOrderPrice = 0.0000;

extern double SellLots = 0.01;

extern int SellStopLoss = 100;

extern int SellTakeProfit = 30;

extern int BuyOrderType = OP_BUYSTOP;

extern int SellOrderType = OP_SELLSTOP;

extern int Slippage = 5;

extern int Magic = 20070401;

//---- Section Define

#define LABEL "OCOLabel"

#define TIMEOUT 3

//---- Variables

double bsl,ssl,btp,stp;

int bt,st;

bool cont = false;

bool flip = true;

int err1,err;

//+------------------------------------------------------------------+

//| script program start function |

//+------------------------------------------------------------------+

int start()

{

//----

if(BuyStopLoss > 0)

bsl = BuyOrderPrice - BuyStopLoss*Point;

else

bsl = 0.0;

if(SellStopLoss > 0)

ssl = SellOrderPrice + SellStopLoss*Point;

else

ssl = 0.0;

if(BuyTakeProfit > 0)

btp = BuyOrderPrice + BuyTakeProfit*Point;

else

btp = 0.0;

if(SellTakeProfit > 0)

stp = SellOrderPrice - SellTakeProfit*Point;

else

stp = 0.0;

bt = OrderSend(Symbol(), BuyOrderType, BuyLots, BuyOrderPrice, Slippage, bsl, btp, "Buy OCO", Magic, 0, Blue);

if(CheckError())

{

RemoveOrder(st); //Added this because when it buys, the sell order didn't cancel - Felipe Penna

return(-1);

}

st = OrderSend(Symbol(), SellOrderType, SellLots, SellOrderPrice, Slippage, ssl, stp, "Sell OCO", Magic, 0, Red);

if(CheckError())

{

RemoveOrder(bt);

return(-1);

}

cont = IsTradeAllowed();

err1 = 0;

while(cont)

{

if(flip)

ShowLabel();

else

HideLabel();

flip = !flip;

err = 0;

if(OrderSelect(bt, SELECT_BY_TICKET, MODE_TRADES))

{

if(OrderType() TIMEOUT)

cont = false;

Sleep(500);

cont = cont && IsTradeAllowed();

}

HideLabel();

//----

return(0);

}

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| script program VOID functions |

//+------------------------------------------------------------------+

#include

#include

void ShowLabel()

{

ObjectCreate(LABEL, OBJ_LABEL, 0, 0, 0);

ObjectSet(LABEL, OBJPROP_CORNER, 2);

ObjectSet(LABEL, OBJPROP_XDISTANCE, 4);

ObjectSet(LABEL, OBJPROP_YDISTANCE, 2);

ObjectSetText(LABEL, "OCO by http://www.mqlservice.com modified by Felipe Penna", 8, "Arial", Red);

WindowRedraw();

}

void HideLabel()

{

ObjectDelete(LABEL);

WindowRedraw();

}

bool CheckError()

{

int err = GetLastError();

if(err == ERR_NO_ERROR) return(false);

Print("ERROR #",err,": ",ErrorDescription(err));

Alert("ERROR #",err,": ",ErrorDescription(err));

return(true);

}

void RemoveOrder(int ticket)

{

if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))

if(OrderType() <= OP_SELL)

OrderClose(ticket, OrderLots(), OrderClosePrice(), Slippage);

else

OrderDelete(ticket);

CheckError();

}

//+---- Coded by M. Rutka -------------------------------------------+

Re: Import

#540077 Amatoregy Előzmény: #390477

na en se vagyok egy kapkoido tipus. ropke egy ev utan letoltottem ket oco megbizas-t. az egyik (az oco) azt felismeri, a masikat nem. Az oco-t beteszi expertnek de semmi se latszik a csarton. Hogy mukodik ez, illetve mi a kulonbseg a ketto kozott (azon kivoul, hogy az egyikben van csuszo stop is)?

megbizasok a kovetkezo postban...

Re: mt4 script

#519574 archenius Előzmény: #519562

Azért írtam úgy, mert a script elején egyszerűbb egy könnyen beazonosítható rövid sorban az értéket átírni, mint később a kód belsejében bogarászni azt az egy számot. De ha csak egyszer kell ezt átírni, így is jó. :)

Re: mt4 script

#519562 _pda_ Előzmény: #519071

no, megvan a mechanikus verzió, amiről beszéltünk :)

int pont = 100; erre nincs szükség,

mert ez az egyszerű syntaxis, amit kibolhásztam:

iHigh(Symbol(),PERIOD_H1,1)+3*Point,3,iLow(Symbol(),PERIOD_H1,1)-1*Point

az automatikus spread verziót még megvárom ha sikerül :)

Re: mt4 script

#519417 _pda_ Előzmény: #519071

"Ez csak BUY STOP ordert helyez el. Ráadásul 2* ???"

igen, ez a strati alapja :)

"int pont = 100;"

ezt levettem 1 pontra, mert nálam az 1pip, ez működik de arányosan mindkét oldalán a gyertyának (mert a low értéket is módosítani kell) eltolja az ordert az adott pippel

viszont nekem a spreaddel módosított árra van szükségem az egyik oldalon, tehát külün-külön kell megadnom a limit és SL értékeket, gyakorlatilag az 1pip breakeven miatt :S

az még a hab a tortán, h ezzel a két módosított értékkel számolt TP-t kellene tudnia beálítania a scriptnek :))))))

tudom, menjek a sóhivatalba :DD

igazából az 1 pip elmozdítás miatt csak a spread értékkel kell módosítanom a limitet, tehát nem kell mindhárom árbeállítást babrálni, ez is elég alapjáraton

Re: mt4 script

#519071 archenius Előzmény: #518936

Ez csak BUY STOP ordert helyez el. Ráadásul 2* ???

Ha így módosítod a kódot, akkor 10 pippel feljebb helyezi el a megbízást.

int pont = 100;

int start() {

.

.

.

ticket=OrderSend(Symbol(),OP_BUYSTOP,0.1,iHigh(Symbol(),PERIOD_H1,1)

+pont*Point,3,iLow(Symbol(),PERIOD_H1,1),iHigh(Symbol(),PERIOD_H1,1)

+(risk)*Point,"DIBS Break Even Trade - Long");

A második ticket sortól az utolsó } kivételével szerintem törölheted, vagy kommentezd ki a // jelekkel.

mod: betördeltem a kódot, hogy beleférjen a fórumablakba, egy sorba írj mindent!!!

mt4 script

#518936 _pda_

sziasztok, ért valaki az mt4 scriptekhez kicsit?

erről lenne szó:

http://www.forexfactory.com/attachment.php?attachmentid=162152&d=1225098062

az utolsó gyertya High-Low értékénél nyitja meg a pozit, semmi mást nem tud

annyit szeretnék, h ezeket az értékeket, iHigh/ iLow tetszés szerinti pip/pont értékkel tudjam módosítani az editorral

átnéztem egy csomó scriptet az mqldev-en de nem jöttem rá a megoldásra, h hová kellene beszúrni helyesen pl: az +5*Point értéket

köszi előre is

Re: Import

#488296 ikszf Előzmény: #487967

Dealbook-os brókercégnél bővebb kínálatot még nem láttam sehol.

Ami kell, az tradelhető náluk.

Re: nincs cím

#409644 lackok Előzmény: #409637

Közben ráakadtam a válaszra:

\config\terminal.ini

remove AlertWindowLeft, AlertWindowTop, AlertWindowRight, AlertWindowBottom lines

Régebben volt egy külön …

#409637 lackok

Régebben volt egy külön felugró figyelmeztető ablak bizonyos szignálokra , figyelmeztetésekre. Na az egy ideje nincs, vajon miért??

Re: Import

#390637 Atticus Előzmény: #390628

Eqtrader nem játszik köszönöm az ajánlatot. Amibróker jó lehet, bár évek óta nem használtam. Yahoo-s adatokkal tudom etetni?

Re: Import

#390628 lackok Előzmény: #390618

Akkor használj Amibrokert....az legalább letölti az adatokat magától, nem kell kézzel megetetned vele.

Re: Import

#390620 Hathor Előzmény: #390618

hali, toltsd le a questor oldalarol az EQtradert, szerintem abban minden van. Bar en is a heten szedtem le, nem neztem meg at, de brutal mennyisrgu cucc van benne, van chart is, indikatorai jobbak nekem, bar csak indexeket neztem meg.