Hai semua. Saya telah cuba untuk memikirkan ini untuk beberapa waktu sekarang tetapi tidak dapat. Ada yang membantu dengan perkara ini. Kod di bawah ini adalah apa yang melaksanakan urus niaga lama saya tetapi saya terus menerima kesalahan OrderSend 4051 jumlah banyak yang tidak sah untuk fungsi OrderSend. Saya telah mencuba kaedah yang berbeza tetapi tiada yang seolah-olah berfungsi. Dengan menggunakan kod ini dalam dimensi banyak saya, cuba untuk mendapatkan banyak dimensi yang hanya akan membahayakan peratusan saya setiap dagangan tetapi menggunakan stoplosis berubah secara rujukan. The stoploss bervariasi dari perdagangan ke perdagangan sejak yang terendah terendah dalam 50 lilin belakang. Jika anda tahu cara yang lebih mudah atau lebih baik yang juga akan dinilai.

Edit: Saya ingin memasukkan pengurusan risikowang ke transaksi saya dengan menggunakan kaedah ini.

Kod pembolehubah:
Kod dimasukkan ke dalam int Risk_Percent = 3;/Peratus akaun untuk risiko setiap perdagangan. Dual LowShift = iLowest (Simbol (), PERIOD_H1, MODE_LOW, 50, 1);/Cari lilin dengan menggunakan lilin yang paling rendah dalam 50 lilin. Double Teratas = iLow (Symbol (), PERIOD_H1, LowestShift);/Cari rendah lilin yang digunakan oleh LowestShift ganda Buy_Take_Profit = ((Bid-Lowest) Ask);/Untuk membuat perdagangan 1: 1
Kod Pelaksanaan:
Kod Insert jika (Condition1 lt; Kondisi2) jika (Kondisi3 lt; Keadaan4) jika (getOpenOrders () == 0) double Buy_Lots = NormalizeDouble (((AccountBalance () * (Risk_Percent100) (((Bid-Terendah) * 100000) * (MarketInfo (Simbol (), MODE_TICKVALUE)))), 2); Buy_Order = OrderSend (Simbol (), OP_BUY, Buy_Lots, Ask, 30, Lowest, Buy_Take_Profit, NULL, 2000,0, clrGreen);