|
Post by paobig on Jun 14, 2016 11:39:07 GMT 7
double checkOrderPendingPrice(int Magic) { int total_order = OrdersTotal(); if(total_order > 0) { for(int i=total_order ;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if (OrderMagicNumber() == Magic && OrderSymbol() == Symbol() && (OrderType() == OP_BUYSTOP ||OrderType() == OP_SELLSTOP )) { return OrderOpenPrice(); } } } } } ตาม code ด้านบนเลยครับ ผมทำการ เขียน function เพิ้อวนลูปหาราคาเปิดแต่มัน return กลับมาได้ที่ละค่า ถ้าผมต้องการ นำค่าพวกนี้เก็บไว้ใน array เพื่อใช้งานต่อ ต้องทำเช่นไรครับ ขอบคุณครับ
|
|
|
Post by Xa Em on Jun 14, 2016 11:46:14 GMT 7
รอท่าน ก๊อตจิ มาตอบครับ เรื่อง array ผมไม่ถนัดครับ
|
|
|
Post by iamgotzaa on Jun 14, 2016 13:29:38 GMT 7
อาจจะมีทางอื่นอีก
อันนี้ผมทำให้เป็นตัวอย่าง คุณเปา มีที่ผิดตรงที่คุณเอา ใช้ return ไปอยู่ ใน loop ทำให้ฟังก์ชั่นทำงานแค่รอบเดียว คือเจอออเดอร์แรกส่งค่่าออก ปิดฟังก์ชั่นเลย ทำให้ทำกี่รอบคุณเปาก็ได้อยู่ค่าเดียว
ทีนี้ถ้าจะแก้แล้วส่งค่าออก โดยโครงสร้างวนลูปในฟังก์ชั่นแบบนี้ ถ้าเอา return มาอยู่ นอกลูก คุณเอาก็ได้จะได้แค่ค่าของออเดอร์สุดท้ายอย่างเดียว คือ เอาตัวแปรมารับค่า OrderOpenPrice() จากนั้นค่อยมาปล่อยข้างนอก กว่าจะออกมาข้างนอกก็โดนเรียกค่าทับไปจนตัวสุดท้าย
ถ้าจะใช้อาเรย์ ก็ให้ กำหนด parameters เป็ฯ reference ว่าจะเอาอาเรย์เข้ามาใช้ double &array[] แบบนี้ จากนั้นก็ประกาศ counter index คอยนับว่าถึงตัวที่เท่าไรแล้ว note ลำดับออเดอร์ ไม่จำเป็นต้องเป็น ลำดับเดียวกับลำดับของอาเรย์ เพราะว่าถ้า magic ไม่ตรงก็ไม่นับ symbol ไม่ตรง อาเรย์ก็ไม่ต้องนับ เลยต้อง กำหนดเพิ่มมานับอีกตัว ในที่นี้คือ k
จากนั้นก็ แทนค่าเข้าไป
array[k]=OrderOpenPrice(); k++; แล้วก็เลื่อน index ขึ้นไปอีก 1 วนไปเรื่อยๆ
void checkOrderPendingPrice(int Magic, double &array[]) { int total_order = OrdersTotal(); int k=0; if(total_order > 0) { for(int i=total_order ;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if (OrderMagicNumber() == Magic && OrderSymbol() == Symbol() && (OrderType() == OP_BUYSTOP ||OrderType() == OP_SELLSTOP )) { array[k]=OrderOpenPrice(); k++;
//return OrderOpenPrice(); // คุณเปาเอา return มาใส่ตรงนี้มันก็ออกฟังก์ชั่นตั้งแต่ครั้งแรกเลยสิครับ มันไม่รันหมดทั้ง loop } } } }
}
การใช้งาน
double prices[]; //assume there is max 100 order.
void OnTick() { checkOrderPendingPrice(123124,prices);
//e.g. example use Print(prices[1]); Print(prices[2]); Print(prices[3]); }
|
|
|
Post by Xa Em on Jun 14, 2016 13:58:55 GMT 7
ได้ความรู้เพิ่มอีก อิอิ ขอบคุณครับ
|
|
marot
New Member
Posts: 43
|
Post by marot on Jun 14, 2016 15:41:34 GMT 7
แนะนำเพิ่มอีกนิดเดียวครับ
ควรจะ return ค่า k ออกมาด้วยครับ...
|
|
|
Post by paobig on Jun 14, 2016 16:03:05 GMT 7
ไปหาเจอมา มีคนเข้าเขียน script จัดการไว้ ประยุกต์ใช้ไงดีฮะ จับมาใส่เงื่อนไข _OrderOpenPrice[_ExpertOrdersTotal] != Orderopenprice เลยได้มั๊ยครับ Orders Management - It's Simple// the variable that will store the amount of all orders of the expert: int _ExpertOrdersTotal=0;
// arrays where the order characteristics will be stored: int _OrderTicket[],_OrderType[]; double _OrderLots[],_OrderOpenPrice[],_OrderStopLoss[], _OrderTakeProfit[]; double _OrderProfit[],_OrderSwap[],_OrderCommission[]; datetime _OrderOpenTime[],_OrderExpiration[]; string _OrderComment[]; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void AllOrdersInit(int magic) { int _GetLastError=0,_OrdersTotal=OrdersTotal();
// change array sizes according to the current amount of // positions // (if _OrdersTotal = 0, change the arrays size for 1) int temp_value=MathMax(_OrdersTotal,1); ArrayResize(_OrderTicket,temp_value); ArrayResize(_OrderType,temp_value); ArrayResize(_OrderLots,temp_value); ArrayResize(_OrderOpenPrice,temp_value); ArrayResize(_OrderStopLoss,temp_value); ArrayResize(_OrderTakeProfit,temp_value); ArrayResize(_OrderOpenTime,temp_value); ArrayResize(_OrderProfit,temp_value); ArrayResize(_OrderSwap,temp_value); ArrayResize(_OrderCommission,temp_value); ArrayResize(_OrderComment,temp_value); ArrayResize(_OrderExpiration,temp_value);
// zeroize the arrays ArrayInitialize(_OrderTicket,0); ArrayInitialize(_OrderType,0); ArrayInitialize(_OrderLots,0); ArrayInitialize(_OrderOpenPrice,0); ArrayInitialize(_OrderStopLoss,0); ArrayInitialize(_OrderTakeProfit,0); ArrayInitialize(_OrderOpenTime,0); ArrayInitialize(_OrderProfit,0); ArrayInitialize(_OrderSwap,0); ArrayInitialize(_OrderCommission,0); ArrayInitialize(_OrderExpiration,0);
_ExpertOrdersTotal=0; for(int z=_OrdersTotal-1; z>=0; z --) { if(!OrderSelect(z,SELECT_BY_POS)) { _GetLastError=GetLastError(); Print("OrderSelect(",z,",SELECT_BY_POS) - Error #", _GetLastError); continue; } if(OrderMagicNumber()==magic && OrderSymbol()== Symbol()) { // fill the arrays _OrderTicket[_ExpertOrdersTotal]=OrderTicket(); _OrderType[_ExpertOrdersTotal] = OrderType(); _OrderLots[_ExpertOrdersTotal] = NormalizeDouble(OrderLots(),1); _OrderOpenPrice[_ExpertOrdersTotal]= NormalizeDouble(OrderOpenPrice(),Digits); _OrderStopLoss[_ExpertOrdersTotal]= NormalizeDouble(OrderStopLoss(),Digits); _OrderTakeProfit[_ExpertOrdersTotal]= NormalizeDouble(OrderTakeProfit(),Digits); _OrderOpenTime[_ExpertOrdersTotal]=OrderOpenTime(); _OrderProfit[_ExpertOrdersTotal]= NormalizeDouble(OrderProfit(),2); _OrderSwap[_ExpertOrdersTotal]= NormalizeDouble(OrderSwap(),2); _OrderCommission[_ExpertOrdersTotal]= NormalizeDouble(OrderCommission(),2); _OrderComment[_ExpertOrdersTotal]=OrderComment(); _OrderExpiration[_ExpertOrdersTotal]= OrderExpiration(); _ExpertOrdersTotal++; } }
// change the arrays size according to the amount of // positions that belong to the expert // (if _ExpertOrdersTotal = 0, change the arrays size for 1) temp_value=MathMax(_ExpertOrdersTotal,1); ArrayResize(_OrderTicket,temp_value); ArrayResize(_OrderType,temp_value); ArrayResize(_OrderLots,temp_value); ArrayResize(_OrderOpenPrice,temp_value); ArrayResize(_OrderStopLoss,temp_value); ArrayResize(_OrderTakeProfit,temp_value); ArrayResize(_OrderOpenTime,temp_value); ArrayResize(_OrderProfit,temp_value); ArrayResize(_OrderSwap,temp_value); ArrayResize(_OrderCommission,temp_value); ArrayResize(_OrderComment,temp_value); ArrayResize(_OrderExpiration,temp_value); } // the variable that will store the amount of all orders of the expert: int _ExpertOrdersTotal=0;
// arrays where the order characteristics will be stored: int _OrderTicket[],_OrderType[]; double _OrderLots[],_OrderOpenPrice[],_OrderStopLoss[], _OrderTakeProfit[]; double _OrderProfit[],_OrderSwap[],_OrderCommission[]; datetime _OrderOpenTime[],_OrderExpiration[]; string _OrderComment[]; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void AllOrdersInit(int magic) { int _GetLastError=0,_OrdersTotal=OrdersTotal();
// change array sizes according to the current amount of // positions // (if _OrdersTotal = 0, change the arrays size for 1) int temp_value=MathMax(_OrdersTotal,1); ArrayResize(_OrderTicket,temp_value); ArrayResize(_OrderType,temp_value); ArrayResize(_OrderLots,temp_value); ArrayResize(_OrderOpenPrice,temp_value); ArrayResize(_OrderStopLoss,temp_value); ArrayResize(_OrderTakeProfit,temp_value); ArrayResize(_OrderOpenTime,temp_value); ArrayResize(_OrderProfit,temp_value); ArrayResize(_OrderSwap,temp_value); ArrayResize(_OrderCommission,temp_value); ArrayResize(_OrderComment,temp_value); ArrayResize(_OrderExpiration,temp_value);
// zeroize the arrays ArrayInitialize(_OrderTicket,0); ArrayInitialize(_OrderType,0); ArrayInitialize(_OrderLots,0); ArrayInitialize(_OrderOpenPrice,0); ArrayInitialize(_OrderStopLoss,0); ArrayInitialize(_OrderTakeProfit,0); ArrayInitialize(_OrderOpenTime,0); ArrayInitialize(_OrderProfit,0); ArrayInitialize(_OrderSwap,0); ArrayInitialize(_OrderCommission,0); ArrayInitialize(_OrderExpiration,0);
_ExpertOrdersTotal=0; for(int z=_OrdersTotal-1; z>=0; z --) { if(!OrderSelect(z,SELECT_BY_POS)) { _GetLastError=GetLastError(); Print("OrderSelect(",z,",SELECT_BY_POS) - Error #", _GetLastError); continue; } if(OrderMagicNumber()==magic && OrderSymbol()== Symbol()) { // fill the arrays _OrderTicket[_ExpertOrdersTotal]=OrderTicket(); _OrderType[_ExpertOrdersTotal] = OrderType(); _OrderLots[_ExpertOrdersTotal] = NormalizeDouble(OrderLots(),1); _OrderOpenPrice[_ExpertOrdersTotal]= NormalizeDouble(OrderOpenPrice(),Digits); _OrderStopLoss[_ExpertOrdersTotal]= NormalizeDouble(OrderStopLoss(),Digits); _OrderTakeProfit[_ExpertOrdersTotal]= NormalizeDouble(OrderTakeProfit(),Digits); _OrderOpenTime[_ExpertOrdersTotal]=OrderOpenTime(); _OrderProfit[_ExpertOrdersTotal]= NormalizeDouble(OrderProfit(),2); _OrderSwap[_ExpertOrdersTotal]= NormalizeDouble(OrderSwap(),2); _OrderCommission[_ExpertOrdersTotal]= NormalizeDouble(OrderCommission(),2); _OrderComment[_ExpertOrdersTotal]=OrderComment(); _OrderExpiration[_ExpertOrdersTotal]= OrderExpiration(); _ExpertOrdersTotal++; } }
// change the arrays size according to the amount of // positions that belong to the expert // (if _ExpertOrdersTotal = 0, change the arrays size for 1) temp_value=MathMax(_ExpertOrdersTotal,1); ArrayResize(_OrderTicket,temp_value); ArrayResize(_OrderType,temp_value); ArrayResize(_OrderLots,temp_value); ArrayResize(_OrderOpenPrice,temp_value); ArrayResize(_OrderStopLoss,temp_value); ArrayResize(_OrderTakeProfit,temp_value); ArrayResize(_OrderOpenTime,temp_value); ArrayResize(_OrderProfit,temp_value); ArrayResize(_OrderSwap,temp_value); ArrayResize(_OrderCommission,temp_value); ArrayResize(_OrderComment,temp_value); ArrayResize(_OrderExpiration,temp_value); } extern int _MagicNumber = 0;
#include AllOrdersControl.mq4>
int start() { AllOrdersInit(_MagicNumber);
if(_ExpertOrdersTotal>0) { string OrdersList=StringConcatenate(Symbol(), ", MagicNumber ",_MagicNumber,":\n"); for(int n=0; n _ExpertOrdersTotal; n++) { OrdersList=StringConcatenate(OrdersList, "Order # ",_OrderTicket[n], ", profit/loss: ", DoubleToStr(_OrderProfit[n],2), " ",AccountCurrency(),"\n"); } Comment(OrdersList); }
return(0); } Attachments:AllOrdersControl.mq4 (4.05 KB)
|
|
|
Post by iamgotzaa on Jun 14, 2016 19:45:01 GMT 7
ก็ดีครับแล้วแต่คนเขียนล่ะครับว่าจะใช้ของคนอื่นหรือจะเขียนเองตามความต้องการใช้งาน
|
|
|
Post by paobig on Jun 14, 2016 22:18:34 GMT 7
ตอนนี้เขียนแบบนี้ แต่มันไม่ออกแฮะ
คำสั่งชุดนี้เอาไว้ใช้เมื่อ เวลา order มัน tp ไปแล้วให้กลับไปเปิดจุด เดิมใหม่อ่ะครับ แต่มันไม่ทำงาน ใช้ร่วมกับ script ในหัวข้อก่อนหน้านะครับ รบกวนด้วยครับ
if (_ExpertOrdersTotal>0 && _ExpertOrdersTotal<MaxOrders) //Check condition for open Last TP order { int count_0 = 0,Corder = 0; for (int Total = OrdersHistoryTotal() - 1; Total >= 0; Total--) { Corder = OrderSelect(Total, SELECT_BY_POS, MODE_HISTORY); if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue; if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && (OrderType()==OP_BUY)) { { open_price = NormalizeDouble(OrderOpenPrice(),Digits); close_price = NormalizeDouble(OrderClosePrice(),Digits); order_tp = NormalizeDouble(OrderTakeProfit(),Digits);
for(int n=0; n < _ExpertOrdersTotal; n++) { if (order_tp == close_price && Ask>open_price && _OrderOpenPrice[n] != open_price) { PlacePendingOrder(OP_BUYLIMIT,LOT,open_price,0,order_tp,"KZM Buylimit",MagicNumber); } if (order_tp == close_price && Ask<open_price && _OrderOpenPrice[n] != open_price) { PlacePendingOrder(OP_BUYSTOP,LOT,open_price,0,order_tp,"KZM BuyStop",MagicNumber); } }
} } } }
|
|
|
Post by iamgotzaa on Jun 14, 2016 22:40:09 GMT 7
ชิวๆครับ งานนี้เพื่อความสะดวก ผมงัดไฟล์ก้นกุฏิผมมาเล่นเลยล่ะกัน หลักๆที่ต้องหาก็คือ ออเดอร์ สุดท้าย ในประวัติ หรือ ออเดอร์ล่าสุดที่เพิ่งจะปิดไปนั่นเอง ก่อนอื่นก็โหลดไฟล์ LastOrder.mqh ไปก่อนนะครับ LastOrder.mqh (77.2 KB) ฟังก์ชั่นที่ใช้ก็ get_last_order() order_open_price() ทั้งคู่ดึงในโหมด MODE_HISTORY ได้ แค่นั้นเอง จบข่าว แล้วเอาโค้ดทั้งหมดไปลอง //+------------------------------------------------------------------+ //| test.mq4 | //| | //| | //+------------------------------------------------------------------+ #property copyright "" #property link "" #property version "1.00" #property strict
#include <LastOrder.mqh> //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- int t=OrderSend(Symbol(),OP_BUY,0.1,Ask,2,Ask-100*Point,Ask+100*Point); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //---
} //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- bool nil=OrdersTotal()==0;
if(!nil) return;
int lasthist=get_last_order(0,OP_BUY,MODE_HISTORY); double SymbolSepc_stoplevelpts=MarketInfo(Symbol(),MODE_STOPLEVEL)*Point; if(lasthist>0) { double op_history=order_open_price(lasthist,MODE_HISTORY); if(Bid>op_history+SymbolSepc_stoplevelpts) { int t=OrderSend(Symbol(),OP_BUYLIMIT,0.1,op_history,2,op_history-100*Point,op_history+100*Point); } if(Bid<op_history-SymbolSepc_stoplevelpts) { int t=OrderSend(Symbol(),OP_BUYSTOP,0.1,op_history,2,op_history-100*Point,op_history+100*Point); } } } //+------------------------------------------------------------------+
|
|
|
Post by paobig on Jun 14, 2016 23:00:28 GMT 7
ปัญหาคือ บางทีกราฟมันแรง แล้วมัน tp พร้อมกันหลายตัว เลยเช็คแค่ order ตัวสุดท้ายที่ปิดไม่ได้สิครับ ถึงต้องเก็บ history เข้า array เพื่อวนเทียบ order อ่ะครับผม
|
|
|
Post by iamgotzaa on Jun 14, 2016 23:11:07 GMT 7
ปัญหาคือ บางทีกราฟมันแรง แล้วมัน tp พร้อมกันหลายตัว เลยเช็คแค่ order ตัวสุดท้ายที่ปิดไม่ได้สิครับ ถึงต้องเก็บ history เข้า array เพื่อวนเทียบ order อ่ะครับผม งั้นให้คุณเปาลองอธิบายมาก่อนว่า ถ้าจะทำอย่างที่ว่าได้ ต้องทำอย่างไรบ้าง แล้วผมจะช่วยต่อ เป็นข้อๆ 1 2 3 ... ไล่ลงมา
|
|
|
Post by paobig on Jun 14, 2016 23:19:07 GMT 7
ปัญหาคือ บางทีกราฟมันแรง แล้วมัน tp พร้อมกันหลายตัว เลยเช็คแค่ order ตัวสุดท้ายที่ปิดไม่ได้สิครับ ถึงต้องเก็บ history เข้า array เพื่อวนเทียบ order อ่ะครับผม งั้นให้คุณเปาลองอธิบายมาก่อนว่า ถ้าจะทำอย่างที่ว่าได้ ต้องทำอย่างไรบ้าง แล้วผมจะช่วยต่อ เป็นข้อๆ 1 2 3 ... ไล่ลงมา ขอบคุณครับ 1. เช็ค order ที่ tp ไปทั้งหมด 2. นำ order ที่ tp ไปทั้งหมดมาเทียบกับ order ที่ยังเปิดอยู่ว่าตรงกันหรือไม่ - ถ้าตรงกัน ซ้ำ กันก็ข้าม - ถ้าไม่ตรง ให้เปิด order ที่จุดนั้น
|
|
|
Post by iamgotzaa on Jun 14, 2016 23:19:39 GMT 7
ลองพิจารณา แล้วลองเขียนจาก diagram น่าจะง่ายขึ้นครับ
|
|
|
Post by iamgotzaa on Jun 14, 2016 23:29:01 GMT 7
งั้นให้คุณเปาลองอธิบายมาก่อนว่า ถ้าจะทำอย่างที่ว่าได้ ต้องทำอย่างไรบ้าง แล้วผมจะช่วยต่อ เป็นข้อๆ 1 2 3 ... ไล่ลงมา ขอบคุณครับ 1. เช็ค order ที่ tp ไปทั้งหมด 2. นำ order ที่ tp ไปทั้งหมดมาเทียบกับ order ที่ยังเปิดอยู่ว่าตรงกันหรือไม่ - ถ้าตรงกัน ซ้ำ กันก็ข้าม - ถ้าไม่ตรง ให้เปิด order ที่จุดนั้น ลองอ่านนี่ก่อนไหมครับ Event tracker เป็นการ track ว่ามีออเดอร์ไหนเปิดปิด อย่างไร ซึ่งตรงกับที่คุณเปาบอกว่า ถ้าออเดอร์ tp ซึ่งก็คือ close ไปนั่นเอง ก็จะเกิด event นี่ขึ้น โปรแกรมตัวนี้ก็จะ บอกได้ ดูใน arguments ของโปรแกรมนะครับ ตรงเลยทีเดียวเชียว book.mql4.com/build/events
|
|
|
Post by paobig on Jun 15, 2016 12:14:19 GMT 7
แก้ได้ละครับ ขอบคุณมากครับ นิดเดียวจริง ๆ
if (_ExpertOrdersTotal>0 && _ExpertOrdersTotal<MaxOrders) //Check condition for open new order { int count_0 = 0,Corder = 0; for (int Total = OrdersHistoryTotal() - 1; Total >= 0; Total--) { Found_Duplicate = False; Corder = OrderSelect(Total, SELECT_BY_POS, MODE_HISTORY); if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue; if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && (OrderType()==OP_BUY)) { { open_price = NormalizeDouble(OrderOpenPrice(),Digits); close_price = OrderClosePrice(); order_tp = OrderTakeProfit(); order_magic = OrderMagicNumber(); for(int n=0; n <_ExpertOrdersTotal; n++) { if (order_tp == close_price && _OrderOpenPrice[n] == open_price) { Found_Duplicate = True; break; } } if (Ask>open_price && Found_Duplicate == False) { PlacePendingOrder(OP_BUYLIMIT,LOT,open_price,0,order_tp,"KZM Buylimit",MagicNumber); Found_Duplicate = True; break; //ใส่เพิ่มตรงนี้ให้มันออกลูป } else if (Ask<open_price && Found_Duplicate == False) { PlacePendingOrder(OP_BUYSTOP,LOT,open_price,0,order_tp,"KZM BuyStop",MagicNumber); Found_Duplicate = True; break; //ใส่เพิ่มตรงนี้ให้มันออกลูป } } } } }
|
|
|
Post by Kimber on Jan 27, 2021 10:12:13 GMT 7
|
|
|
Post by Miriam on Feb 4, 2021 21:40:39 GMT 7
|
|
|
Post by Phillis on Feb 9, 2021 22:08:51 GMT 7
I really like your blog.. very nice colors & theme. Did you design this website yourself or did you hire someone to do it for you? Plz answer back as I'm looking to construct my own blog and would like to know where u got this from. appreciate it 8888888.comCustomized Composing Providers research paper online 8888888.com
|
|
|
Post by Alba on Feb 10, 2021 22:17:10 GMT 7
|
|
|
Post by Veronique on Feb 15, 2021 19:11:09 GMT 7
This is really interesting, You are a very skilled blogger. I've joined your rss feed and look forward to seeking more of your excellent post. Also, I have shared your website in my social networks! nvrzone.com/ru/forum/topic/5076Experiences and Theses With Many benefits Top-Quality Essay Composing and Edting Assistance. essay writing service nvrzone.com/ru/forum/topic/5076
|
|
|
Post by Henrietta on Feb 23, 2021 15:30:34 GMT 7
I loved as much as you'll receive carried out right here. The sketch iss attractive, your authored subject matter stylish. nonetheless, you command get bought an nervousness over that you wish be delivering the following. unwell unquestionably come more formerly again since exactly the same nearly a lot often inside case you shield this increase. www.patreon.com/posts/44360863write my essay online write my essay online peaginaf.medium.com/essay-generator-43172a42a9fa
|
|
cialis without a doctor prescr
Guest
|
Post by cialis without a doctor prescr on Nov 12, 2021 23:48:51 GMT 7
<a href="https://cialiswithdapoxetine.com/#">cialis pills</a> cialis price
|
|
cialis without a doctor prescr
Guest
|
Post by cialis without a doctor prescr on Nov 12, 2021 23:52:10 GMT 7
<a href="https://cialiswithdapoxetine.com/#">cialis pills</a> cialis price
|
|
cialis with dapoxetine overnig
Guest
|
Post by cialis with dapoxetine overnig on Nov 16, 2021 11:37:10 GMT 7
cialis without a doctor prescription <a href="https://cialiswithdapoxetine.com/#">cialis tablets</a>
|
|
fastest delivery of cialis
Guest
|
Post by fastest delivery of cialis on Nov 20, 2021 1:00:11 GMT 7
|
|
fastest delivery of cialis
Guest
|
Post by fastest delivery of cialis on Nov 20, 2021 1:04:27 GMT 7
|
|
|
Post by cialis coupon on Nov 23, 2021 6:48:10 GMT 7
<a href="https://cialiswithdapoxetine.com/#">cialis online</a> cialis dosage
|
|
|
Post by cialis coupon on Nov 23, 2021 6:50:09 GMT 7
<a href="https://cialiswithdapoxetine.com/#">cialis online</a> cialis dosage
|
|
|
Post by cialis coupon on Nov 23, 2021 6:51:28 GMT 7
<a href="https://cialiswithdapoxetine.com/#">cialis online</a> cialis dosage
|
|
|
Post by cialis 20 mg on Nov 30, 2021 15:36:29 GMT 7
|
|